One thing the fediverse DOES have is multiple client programs. Like with Thunderbird/Roundcube/K-9 Mail, you can use a few different fediverse client apps, or even a couple that run on the web, like what's that one, Elk?
But a bunch of them, the "user-agents" are tied to the backend. Like, you can't use Mastodon's client with a Firefish server. I think it'd be better for the ecosystem if the clients were split from the servers, and the servers were split into S2S and S2C.