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.