Seems to me that a sensible model is:

x.y.z

X is a truly major, ground-shaking architectural change, quite possibly 
breaking backwards compatibility.  Y is a significant feature addition. 
  Z is a minor release: a bugfix, or performance enhancement, for instance.