I would guess it's because the moment you do that you push down the problem to the library/application programmers. They will still have to support old systems and suddenly it's no longer a handful X developers who have to maintain backward compatibility but thousands of application developers all over the world which have this task. And certainly not all application programmers will care so the problem will be pushed on further and hit some users.
The problem with downward compatibility never completely goes away. But the closer it is handled to the base the less people have to care about it.
Now there is on the other hand a point where you could say every application programmer has to do so much extra work because the protocols are outdated and overly complicated that breaking downward compatibility will make the life of the average application developer easier. Not an exactly defined point in time - definitely way less obvious than the moment where compatibility is broken. But I guess that's when the break should (have) happen(ed).
The problem with downward compatibility never completely goes away. But the closer it is handled to the base the less people have to care about it.
Now there is on the other hand a point where you could say every application programmer has to do so much extra work because the protocols are outdated and overly complicated that breaking downward compatibility will make the life of the average application developer easier. Not an exactly defined point in time - definitely way less obvious than the moment where compatibility is broken. But I guess that's when the break should (have) happen(ed).