I don't even think it's the complexity, necessarily. More of the fundamental instability of it all. Why exactly does Mac or Windows need to be releasing entirely new OSes every 2 years, except to maintain a new product for the demands of a corporate behemoth to chirp around. People have PERL scripts from 40 years ago that still execute fine, but I doubt anyone has a PowerShell file from the early 2010s that maintains behavior.
I can't comment on Windows, but with regards to apple, they really don't. Sure they strut around like they have but really, they've tweaked some user apps like Mail and Safari, and made bug fixes under the covers. Every now and then they do something like muck with background scheduling, but mostly... it's just bug fixes and new APIs that don't invalidate old ones.
The only problem I've had is dylib files relentlessly moving forward in versions and old ones not being available anymore, but i don't _think_ that's really an apple problem. That and the M1 architecture transition has moved some folders around for reasons I don't understand.