I don't disagree with you, but the reality of running an API service in the cloud means it's tough to support more than just your own clients if you don't have a large budget. And it's easier to coordinate breaking changes if you have control over both the client and server.
If you fragment the user base, you throw exactly that away.
Because no user is going to be willing to install 20 Signal forks to talk to all their friends.
So, in practice, Signal is either at most visible source, or it's actually destructive to the average person's message security.
The only advantage Signal has over XMPP with OMEMO is the "everyone can use it, just works, everyone uses the same version" part.