Changes in the interfaces at least from major kernel release to major kernel release makes it nescessary to rewrite parts of it. Even when there are only small parts, the code has no chance to settle down and to mature.
The process of kernel development in linux may have some inherent problems. There is not really a sustaining engineering, and by stoping the practice of even- and uneven kernels, you have no gatekeeping against errors. Sure the old practice of kernel development was slow. But - dear Linux Community - you are an accepted enterprise operating system for certain tasks. So beeing slow is nothing really bad. The price of speed are errors. But errors are the last you can afford in enterprise computing. Personally i scratched my head when the stopped the concept of releasing production and development kernel.
Perhaps the the cycle of OpenSolaris, Solaris Express and Solaris should be adopted by the linux world. One kernel of the die-hards, one kernel to learn new concepts and test new technologies and one kernel to bet your farm on. This process enables the Opensource Community and Sun to deliver a quite stable operating enviroment. Sure, there are bugs even in Solaris, but thats the inevitable nature of software. But at the end, nowadays i have no stoppages to use the FCS of a Solaris, because of the rather lengthy process.