Just because it's not perfect, does not mean it useless.
A central signal message service receives millions of messages, I've seen claims of 40M active users a month. If each user sends 25 messages a day, that's 12,000 ish a second.
Drawing conclusions about who is talking to each other out of a 12,000 message per second stream is far from trivial since both signal users are just sending and receiving encrypted packets to a central service. Much depends on how much you believe about how signal handles things on the server size.
Not sure federation or pure p2p would improve things, especially since some fraction of the service could be malicious.
But it doesn't make the claims OP says are broken. Op makes several logical leaps and because each leap is a reasonable leap, he assumes it must be THE leap. Which isnt true and it's simple to come up with counterfactuals, and it's a common pitfall in analysis (he's confirming his bias)