there's already porn on here
I think the major oversight Mastadon needs to correct is overlapping usernames. Whether federated or not, usernames should always be unique.
You can still be decentralized and not require a main database if you just force a degree of federation for the purposes of username sharing. Resolve conflicts by Creation timestamp.
The worst that can happen in this scenario is that a user creates an account and, a few minutes or hours later when federation catches up, they get prompted and informed that they must select a new username.
That seems...fine?