@aburka not exactly? The leading number is incremented, and the middle number set to 0, when "the middle number is too big" (in Linus's sole opinion). Also I think it turned out there were problems if the last number exceeded 255, but maybe that was fixed.
@stylus Another reason we get more frequent major version bumps on the kernel nowadays is that 2.* lasted so long that many tools became dependent on checking for majorver == 2. When 3.* first came out we had to internally patch 3.x to 2.6.4x for a few months to keep things working until everything could be fixed. Lessons were learned..