How else could this be accomplished, especially when we are talking about URL structures that need to be somewhat short in length?
I tend to like the approach Valve takes with Steam, which is to completely separate the "account name" (unique, unchangeable) from the "display name" (non-unique, change more or less as often as you want).
There is no need to have the public-facing identifier be the unique identifier, nor is there a good reason to do it. ICQ got this right, way back at the beginning. But somehow everyone forgot.
Yeah, there is: it's a major UX improvement, because the URLs at issue are entry-point URLs, which need friendly names for the same reason domains for public-facing services (which are key components of entry-point URLs) do.
It's true that in the general case objects don't necessarily need a URL component that matches their friendly name, but this is not the general case.
I know I personally very rarely type a direct URL. Either it's already bookmarked, or I google it.
Needless to say, the most prominent and memorable identifier being non-unique has all sorts of uses for trolls and spambots too.
Sure, but it has more uses for people who would like to have a reasonable name. This is just the "knives can be used to kill people" argument.
Since there are a limited number of memorable names available, anyone late to the party gets stuck with non-memorable names. Why not even the playing field?
It's opted in to the problem by deciding that display names need to be unique. It's not right or wrong, it's apparently just been decided that that's desirable for the product.