-version:<value> syntax is intended to request launcher to do something with specific version of JVM. I.e. run your Java application, or print version (-?). But target is not specified, and it is an error. Launcher prints usage and returns 1. Same as running plain java.exe without any parameters. I believe that behavior observed in previous releases is just a minor bug fixed in Java 7.
EDIT You could run java -version:1.5+ -version. This requests launcher check available VMs and print version (that is always successful operation). Less verbose than -? option.
The other option is create some stub class with main method that will do nothing. Then successful check will be completely silent. java -version:1.5+ your.stub.MainClass