[2] is the step that can be addressed.
Basically force those extensions to be equally cross-compatible.
1. What forces me to comply with this rule?
2. What does "able to be implemented" mean? In theory, you can re-implement my entire codebase. In practice, you'll find it very difficult to maintain feature parity with me if I repeatedly extend the protocol faster than you can implement it. Especially if I don't publish my code or document the extension or if I simply have more resources available to me (either in terms of server-bandwidth or programmers).