@Packetdancer
Overcomplicating things a bit, I think. Here are my Privacy Settings for the Lodestone: https://imgur.com/a/RdRgIpO
See the "* Character profiles are always public"? That's a decision someone made. With that, I agree with the OP: this does make stalking folks a bit too easy. It was not a good decision.
Add a line to the Privacy Settings to hide the character, as a starter bandaid. It should only affect the person in question then if the various services can no longer reach the information, but is that even done via the Lodestone itself? I don't know the full details of FFXIV 3rd party tools ecosystem, but that's what things like API keys are for, since in general companies also do not want to get bombarded with requests.
Even creating basic barriers to entry, a lot of people won't be motivated to learn how to query a server API to stalk someone, vs opening a very conveniently provided webpage.
This is only relevant to the true primary key. It's not relevant to the ID used on a website. They may or may not be the same. These are unrelated concerns entirely.ID that remains stable across character name changes and server transfers
And, no, these things would not be more expensive performance wise in any discernible way in standard implementations, the work involved here would be mainly done by a database and they're extremely good at this sort of thing.
I could not follow this at all. Generating a unique per session URL has no bearing on whether or not a search is bound. Generally, any sort of search that involves pagination already generates unique ids for a page anyway...You could also force people to go through the character search interface each time, thus generating a unique per-session URL that expires after like 10 minutes, but that's actually likely more expensive in I/O because you're leaving it up to the user to bound the search results (rather than restricting it to a given name spelling on a specific server).