Federated solutions are quite annoying, because you still have to rely on single server that's hosted most often by someone else.
When you build decentralized protocol for public messaging, you want your messages to be replicated in as many servers as possible by design.