That's the one thing I've never seen someone accuse Microsoft of. They're famous for their obsession with backward compatibility.
It sounds like you've had a different experience, and now I'm curious. Care to share?
I've had software break in the forced feature upgrades of 10, and I had BSODs when printing on every machine I supported at work thanks to a security patch.
This might actually explain why 10 and 11 have been the most flawless experience I've had with Windows while so many people have endless trouble. It might be similar to the transition to NT in XP: everything broke, but almost everything made after was more stable and secure.
Each version of Windows was designed to ideally trigger a purchase of new hardware as a concession to the hardware partners, while each purchase of more powerful hardware was designed to be prohibitively difficult for users to operate using previous Windows versions, triggering a new OS purchase.
Non-Microsoft software suffers more from this disadvantage, compared to the benefit of having some of the Microsoft non-OS software function fairly well across a few OS versions.
I understand how embarassing it would be for users in general to have become aware of how much higher performance they could have gotten from using a previous version of Windows on the next generation of hardware, so this was always made unnecessarily difficult if not impossible.
Also how much hardware could have been saved from scrap heaps if maximum utilization of hardware was given top priority?
When the main reason for growth in manufacturing was consumers purchasing their first computer, this is not as much of a problem.
Once computers are ubiquitous, each new purchase triggers a corresponding waste declaration event.
Accelerating growth pressure under these conditions, while failing to even provide archives for "outdated" code needed to operate remaining vintage hardware, amounts to an overall anti-reuse/anti-recycling strategy.
Microsoft operating systems have always strived to make that impossible.
Apple has to compete somehow.
When you push unfinished, not-fully-tested code out the door, even if you can confidently patch it later, it's just never been the most professional thing to do.
Especially for something that could be mission-critical like an OS.
Getting it into people's hands sooner is no excuse.
This kind of thing really lowers the bar when it comes to the rest of the development ecosystem constantly engaged in making temporary solutions to permanent problems.
This ripples out and overflows far enough to effectively be a major anti-recycling effort for megatonnes of hardware itself.