It is indeed quite similar to mastodon in the sense that other instances can ban you. The difference is that in mastodon your identity is usually located on an instance, and if that instance bans you, you lose your identity. In Urbit every identity has its own instance so your personal contact list will still be able to reach you.
Of course requiring everybody to run its own instance adds quite some friction for user onboarding, but that is an issue with the urbit network, not with the identity layer. You could imagine having your identity and linking it to a hosted instance, and later switch instance if the needs arise.
This is what I like about the idea of having your identity as a NFT, but clearly the way urbit currently uses it does not exploit the full potential of the idea.
As for losing your keys, if such a system would become widespread, most people would chose to have their keys hosted on a third party service, and only people who really care about maintaining full ownership would keep the keys to themselves.