No, I'm pretty sure that's a quirk of how the fediverse works. Posts, comments, etc are in two places:
the instance the community is hosted on
your instance (i.e. unique to users of your instance)
You'll want the first (the permalink) for general posting, and the second for your own use. However, lemmy doesn't handle the first very well, so both options kinda suck.
I honestly don't think there's a good solution to this. We can make improvements though, such as lemmy figuring out that a link is a lemmy link, either through special syntax (like @user@instance or !community@instance) or checking a list of known instances, but the real problem is that users need to be aware of instances, and that's poor UX imo.
I'm working on an alternative to lemmy that solves this (and has a bunch of other drawbacks that I hope are acceptable), but I hope it's not necessary and someone more clever than me can solve it.
If the comments/posts were just numbered relative to their communities instead of generated by each instance, there wouldn't have to be this disconnect at all. /c/piracy@lemmy.dbzer0.com/post/18177167
Would be THE instance-agnostic link for that post, and /c/piracy@lemmy.dbzer0.com/comment/9620373
THE instance-agnostic link for that comment.
Don't even have to redo how the instances generate content numbers for posts/comments generated locally, but set them to pull such numbers in for each post/comment mirrored from another instance. Not even slightly hard to come up with, though I don't have my laptop with me so I'll refrain from speaking one the difficulty of implimentation versus all the "legacy-numbered" content already out there.
Yeah, that would work within lemmy, and it would make it easier to detect whether a link is to lemmy or something else (look for /c/<community chars>@<hostname chars>/<rest>). But you'll still have the issue of clicking a link elsewhere (say, a blog post) to an instance that's not yours, so you still wouldn't be able to directly comment w/o copy/pasting part of the URL to your instance.
That said, that change alone would reduce a lot of friction for users. My point is that it still doesn't fix the root of the problem. I guess we could use a browser extension to auto-redirect to your instance of choice, but that's just yet another barrier for users.
This would still leave the problem of people not being able to just copy paste the url from an address bar. Re-learning how to link stuff is something some wont ever figure out. The relative linking of communities was a stopgap, and they break on kbin for obvious reasons.
Relative links aren't an ideal solution anyway, as different clients handle things differently. A relative link that works in the default webUI, wont in photon, and vice versa (though photon already figures out links way better than the vanilla webUI does).
Not to mention that you'd still want to have absolute links work, too. Both within any client, and when opening links shared outside lemmy, and have them work in a way where you can interact from whatever account you have. By that point you may as well just figure out absolute links for everywhere.
Instances can themselves handle links agnostically, and clients are able to access that via the API.
Using the autocomplete in the webUI can mess things up, as it is from back when community mentions weren't even turned clickable. The link is then an explicit markdown link to the user, and may not be correctly clickable in whatever client others are using, but may instead open an off-instance page in a new tab/browser app.
Even if you link to a post using its local url and ID, a client can, and some already do, open that link in-client from your instance. But this is something that still needs to become more widely implemented.
The "manual" way to open off-instance links locally is to enter their full source url into search on your instance, which should give you their local version as the sole result.
User mentions do not need to be links, same as communities. Just write @username@instance.com and nearly all clients will correctly make it clickable, and Lemmy will also detect and notify the user about the mention.
I don't use any client besides the web-ui. There is no reason for the webui to not impiment obvious features found in multiple client apps, but yes, you've hit the nail on the head as to a desirable version of this behavior.
There is one big reason: it requires time and effort.
The vanilla web-UI is inferior to other clients in a variety of ways, and any feature requires that someone somewhere get it done.
You could make an endless list of things that are "no-brainer" features for someone to add, but the development still requires that someone somewhere go down that list, one item at a time.
For example, Lemmy only recently got the ability to show the real number of subscribers that communities have, instead of showing the number of subs from the instance you were looking at that community from. That's nice, but each update can only come with a subset of the endless number of obvious improvements that could be made.
No client currently does everything that the Lemmy server can technically be made to do with the currently implemented API calls. But the solution to agnostic links already exists. Any instance, when handed the url to a post or comment, no matter what instance it is for, is able to turn that into the corresponding local url/ID, the work to make use of that to make all links work everywhere simply hasn't been put in yet.
Not that long ago just mentioning communities and users was a pain, but that's mostly solved now. Posts and comments will be too. Eventually.
One potential downside to this on the posts/comment front is that if the thread in question is not in a community your instance is federated with, any form of local redirect would yield just an empty post with no comments. Lenny’s current federation is primarily push driven, so when requesting a post from an unknown community will yield no historical comments, as your instance have never subscribed to the community and thus never received the push notifications. Whereas getting sent to the original instance, you’d be able to see the full interaction history and have a better picture of the intended discussion.
I don't care about getting sent to the original instance per se. Getting sent to a landing page on the local instance that says "Hey, we aren't federated with that instance, and/or no one on our instance has subscribed to that community. Here's an externalized(http/url) link to the content you've attempted to access, with no guarantee it will work.
Understand that you may have to make an account with that instance or an instance federated with them if you wish to actually interact with this content."