It gets really bad once you need to support a libc5/a.out executable.
Linux never cared that much. If you're living in an open source world, binary compatibility isn't seen as important. At least that was my impression in the early days, but even now the corporations don't seem to care as much because desktop applications and other binary blobs don't target Linux as much. And for the server-side stuff, you've got containers or VMs.
I would bet that some gamers would cry out if a future revision would derive them of their Steam bloabs.
On the technical side, I do wonder how Windows pulls it all of. Sure, there's more API stability and often fewer external libraries, but there are also the compatibility modes you can set and probably some hidden stuff that you don't have to switch on manually. Wouldn't even be surprised if Windows itself would do a similar thing like GPU drivers and fix some compatibility problems for well-known applications ("I see this is Winword 2.0, so let's work around an allocator bug").