This has always been a mess: analyzers are easy enough to make on your own, we don't need to "take responsibility" for the users analysis chain for 2 major releases.
The code maintenance is horrible here.
This creates a huge usability issue too, and as seen from numerous mailing list issues, users don't even understand how this versioning works anyway.
I'm sure someone will whine if i try to remove these constants, but we can at least make no-arg ctors forwarding to VERSION_CURRENT so that people who don't care about back compat (e.g. just prototyping) don't have to deal with the horribly complex versioning system.
If you want to make the argument that doing this is "trappy" (i heard this before), i think thats bogus, and ill counter by trying to remove them. Either way, I'm personally not going to add any of this kind of back compat logic myself ever again.
Updated: description of the issue updated as expected. We should remove this API completely. No one else on the planet has APIs that require a mandatory version parameter.