I think having mostly small incremental changes in new full version numbers has really upset some people's sense of normal software conventions and their brains have melted.
It is amazing that these so-called "smart people" and "nerds" here on slashdot cannot grasp just a different way of numbering things. I have been amazed about that before, the nerd community is extremely conservative. Every innovation or new idea is bad at first and has a really hard time getting adjusted to.
For me, the numbering scheme Firefox uses is actually easier. Firefox is "done". Every feature they add or list of bugs they find is grouped together and lumped into a new version. That new version will be oldversion+1. It is extremely simple. You see this in many other software projects, the Linux kernel being one as well. It will probably never see 4.x (and if it does, it will be arbitrary, like the 3.x release). Java is doing it, Internet Explorer is doing it, hardware like iPhone is doing it, Ubuntu is doing it. All these things are "done" and upgrading won't (shouldn't) break anything.
Software development follows a asymptotic line; in the beginning many things change and there is the need to subclasses updates (using major.minor.build), later in the lifecycle of the project, changes are smaller or less intrusive. There simple is no need to have such large granularity in version numbers.
Hell, I don't even know which version of Firefox or the Linux kernel I am using. Everything just works and I hardly see any changes after an update.