Usernames and account names/profile names/etc. are not the same thing. Changing one's profile name should be as easy as changing a password or address. That hardly seems like an issue to me.
Usernames are certainly linked to public activity, reputation and various other important things and to allow them to be changed creates more problems than it solves. The only solution I can see is a "formerly known as" listing in the user's public details. That way you get to have a current name while not denying others the option of seeing what your previous incarnations have done on the site, for better or worse.
Your singular approach and comment in this thread absolutely helps elucidate and frame both the nature of the question and the follow-on dogpile thoughtleading as a classic "forest for the trees" view on an issue which has more depth and breadth than the FWP tone taken throughout the thread.
Inevitably when time comes for the hard work to begin, if the conversation has not matured beyond what is expounded here, the most likely solution to be used will be a brownfield, slash-and-burn approach. In practice this ends up with the PIC knee capping everyone down to their level.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.