You’re right that code has to be backwards/forwards compatible. And yes that‘s an ironclad requirement of any system that is updated while it’s running. My writing does not argue against this, since there is no argument against this.
What you’re doing is assuming that nobody ever does anything incorrectly, which is a bad idea. The post is about taking a step back and creating a system that anticipates the accidental delivery of bad code.