How long do you expect upgrades to work before a break in compatibility?
Forever? At least the linux kernel has an explicit goal of never breaking userspace. That doesn't mean other parts of userspace don't break themselves, but the linux kernel has as a development goal to never break binary compatibility for userspace.
It's important to remember that the Kernel is a very small piece of the puzzle that decides whether your 1991 binary works on a system today. The real kicker is whether the glibc versions match, whether X11/Motif will still be around for a while, etc.
But I still admire the kernel for their stance even if it can't solve every compatibility problem.
My last computer retired - 1 month ago. It was more than 5 years old, running Windows XP. XP is still very popular and I would expect it to still be supported and it's 12 years old.
Where did you get your 7 year magic number from?
You can't talk about Windows XP like it's a single, fixed point in the release cycle. XP was released in 2001, giving you your 12 year number, but there were also major service packs released in 2002(SP1), 2004(SP2) & 2008(SP3). The last release of XP was only 5 years ago - more recently than OS X 10.4
Of the new software that still claims XP compatibility, much of it requires SP3.
Yes, it's free but that doesn't mean it's painless. Going to SP2 and SP3 broke backwards compatibility with some drivers and software. It increased the RAM/CPU requirements for running the OS comfortably. They weren't just harmless stacks of collected bug fixes.
Microsoft products receive 5 years mainstream support and 10 years extended support. XP is currently supported for organisations who purchased extended support, but only because there was extraordinary demand for it. It ends in just under 6 months from now.
Unless you're a large organisation paying a lot of money, you aren't likely to get 5 years of support for a particular version of most products.
The difference between 10.4 and 10.8 is seven years. That doesn't seem like an outrageous amount of time to break compatibility.