federation isn’t perfect
Again: so what? It's reasonably easy to see how different is your view from a given community compared to another instance.
You can’t guarantee that.
You are right. There is no guarantee. That doesn't bother me, and I truly don't understand why it should bother others. I am not going to write only if I am optimizing reach or I know a priori if the people are going to approve.
Also, your solution (everyone eventually just uses the same community) isn’t decentralized.
Sorry, your argument is falling to the fallacy that Taleb calls "Thinking in Words". If the system does not depend on a central authority and if the agents are free to talk with each other even when not in the same namespace, then yes, it is decentralized. In practice, there is no actual problem in having large communities belonging to one server. The people are not tied to it, and if the instance controlling the community starts acting malicious or against the interest of the majority, it's easy to coordinate a move away.