My email provider doesn't prevent me from sending an email from someone at Gmail because someone at Gmail happens to have opposite views to the admin.
Yet email is still federated.
Right, you can get kicked off for your emails.
But nobody is going to ban you based on which domains you do or do not put on your block list.
Moreover social media faces distinct issues that require specific tools, causing the email analogy to break down a bit. A lot of organized harassment campaigns leverage network effects of platforms in ways that wouldn't work over email. The per instance federating capability helps to mitigate that, and if mitigating harassment is not something that is a priority there are instances you can join that take the open-to-all approach.
Those domains are being blocked because of what they send.
They're not being blocked on the basis of what domains they block. There's no recursive blocking that wants you to take a stance and punishes you for being a neutral acceptor of emails. Those blocks are the behavior that can make federation suck.
But I also think that's an oversimplification, because the block list is a helpful proxy for content characteristic of an instance.
But this is a case where I think the analogy to email breaks down insofar as its instructive to social media generally, because some things about email don't cleanly map on to what federated instances are managing. It makes sense that you would want to block instances and their enablers, to connect to an ecosystem consistent with the intentions of a particular instance.
As parent commenter said you can use a general purpose provider (with email) or general purpose instance (with Mastodon), so you are accessing the fediverse. The only thing you are "missing out" on is the ability to make it compulsory for other users to listen to you against their consent.
Then stop trying to make a public discourse and instead make a private forum.
And social media posts in this design are pull, not push, so nobody is ever forced to listen to anything. If you block an instance you won't see their posts, no need to block any intermediates.
Some people are so insecure about their own opinions that the pure idea that someone exists that might not agree the same is a threat, never mind seeing their content.
* if their viewpoint agrees with Mr. Musk.
It doesn't. It's the other way around; if you want something niche you'll be likely be searching and custom setup, but otherwise you're getting the default experience with the normal amount of discoverability.
I think it's not at all comparable to a corporate entity like X being in full control and able to censor any content.
You may create your own instance and federate with the instances you want. If an instance chooses not to federate with yours you get to decide what's more important to you, your principles or their content.
The solution is to create your own instance. I understand your frustrations but I have a hard time being empathetic to these issues when you are using someone elses instance, probably administered by volunteers in their spare time.