Well, the ARB has been consistent about using the major version for hardware generations since OpenGL 3.0. And they have been consistent about not doing API changes since OpenGL 1.0. So really, there's no point to doing it this way.This really hints at using the minor version number for big hardware generation changes and a third number after that for this kind of stuff. And you could use the major version number to change the api and the context creation calls while avoid breaking old software.
It's just a string. There's no problem because it's only an identifier. Oh, and it's not 4.2.0; it's 4.20. GLSL versions use 2 digits for the minor version. For some reason.This way you won't have a problem when one of the numbers reaches 10 or higher.