I think pulling in additional history could prove very interesting, so when you get a bit of free time.... ;)
I am picturing a different graph that I think might tell us more about kernel development than the bar graphs above.
The Y-axis would be the absolute number of lines of code, and the X-axis would be kernel releases.
Each kernel release would have a line that started at its release number. You'd have the total number of lines in the kernel marked for 2.6.12.
Then you'd draw a line to the 2.6.13 release to show how many lines of 2.6.12 remained in 2.6.13, and you'd start a new line for 2.6.13 showing the total number of lines in 2.6.13. Each new release would add a new line on the graph. It should look a bit like strata layers or something.
Over time, you should see some patterns in how the releases get replaced over time. If one release was particularly badly done, we'd see it start out with a large number of lines of code at its release, and see it rapidly squeezed to a small number of lines of code by later releases.
I wonder if there is such a thing as a "code half-life"...