I think one limiting factor that has yet to be addressed is that you can move your profile, but you can’t move your content. Another is identity. How do you know which Mastodon server has an authoritative (i.e. “blue-check”) profile for a given person/entity?
edit: Search indexing is also a huge problem. While it’s possible to create a search index over all content local to a given server, maintaining an index over all content on all servers that you federate is a much bigger problem.
Search indexing is also a huge problem. While it’s possible to create a search index over all content local to a given server, maintaining an index over all content on all servers that you federate is a much bigger issue. And that’s before we get to the problem of migrating associated content when a profile moves from one server to another.