"Now that the kernel mode-setting page-flipping for the ATI Radeon DRM kernel module has been merged into the Linux 2.6.38 kernel and the respective bits have been set in the xf86-video-ati DDX, we're in the process of running new open-source ATI graphics benchmarks under Linux. Our initial results (included in this article) show these latest improvements to cause some major performance boosts for the open-source ATI driver as it nears the level of performance of the proprietary Catalyst driver."

Constantly having to change an interface reeks of poor software design.

It's something called evolution and an extremely fast paced one at that. In the end what really matters is scaling the scalability of development and that's the biggest reason why Linux got where it is today.

A driver released 10 years ago for Windows XP will still work with Windows XP Service Pack 3 with all the latest updated

The same goes for RHEL and SLE SPs (for the most part). If you talk to MS kernel engineers that they have to maintain internal ABI identical across different kernel generations, they'll probably give you a pretty silly look too. And, you know what? They don't either.

The difference doesn't primarily come from development itself. It comes from how they're packaged and released. Linux distros are much faster paced, which has its benefits and drawbacks. A lot of that is by choice but at the same time with the current money flow (at least for desktop), it's quite difficult for distros to sustain such long maintenance cycles. It takes a lot of money to do that and that's why you see much longer cycles with enterprise distros.

Really, it's not about kernel devs trying to screw everyone else. If it were that simple, don't you think someone would already have come up with a branch or something which maintains the supposedly superiorly designed stable ABI? It's about how the whole thing is structured and the economy around it is built and I personally think that it may be different from other but nevertheless a model which has potential for sustainable improvement over long period of time.

So, think a bit more about it. It's okay to complain but don't draw conclusions when your understanding is very shallow. Just say hardwares working in one release and not in the next is very annoying or unacceptable. Don't jump to the unwarranted conclusion that that's a result of kernel developers' whims.