But not everybody is evil. So, you get together with lots of other people at a conference, and you announce a new code-of-conduct based organization to do mutual interconnection for homeservers that agree to a particular set of rules. The requirement for federation is that they agree, and that they will not federate with anyone who doesn't agree to the same set; the only penalty for non-compliance is not being allowed to federate with the members of the organization anymore.
There you go. Remember to thank the Matrix people for all their hard work, which you have subverted from "evil" to "good".
Btw, there are several server implementations of matrix sever, not related to the New Vector/Element.
Bingo! You've precisely stated the reason, why Matrix is a product and will always be a product, and never a protocol. In real world, third party servers will never be on the same version of protocol.
A few years ago [1] people here explained to Matrix developers that "single monolithic versioned protocol" that is NOT the way to build federation, ant that it is silly to assume that everyone will magically update once the new version comes out, but they were preaching to deaf ears.
I understand that's not perfect and such approach has it's own downsides, but for now it's OK.
PS: I'm not matrix developer, so my opinion maybe wrong, but from user and sysadmin perspective I don't see/feel any problems with it