@liaizon As far as the ActivityPub standard is concerned, usernames should be completely changeable.
As you noticed with Mastodon and Akkoma, they add the username to the ActivityPub ID which makes changing usernames pretty much impossible since the ID is supposed to be immutable.
We are using the IDs at the moment since it will make it easier for us to potentially support multiple domains (something similar to what Takahe does).
But we can also explore how different implementations react to username changes, and if the reaction isn't "we break everything", it might be something worth considering.
This multi-domain support is also somewhat related to portability. The idea is that a user is able to register their own domain and use a hosted instance via their own domain.
I.e. the account is on "kitsune.nexus" but they use their own domain with it.
The IDs of the actor, posts, etc. reference that own domain they brought.
This will enable some sort of portability (at least between Kitsune servers) since the user is still in control of their domain. A more detailed explanation can be found here: https://shadowfacts.net/2023/activitypub-portable-identity/
This is all very much in the planning phase though.
However this is something we want to add before we do our first "proper" release since we want to guarantee data model stability from there on out.