For the system classpath environment variable: By default, we do not append the contents of the CLASSPATH variable to the classpath in the Java Options. The question as to whether it's desirable or not is really up to details in the user's development environment and practices. If you want to include the CLASSPATH environment variable, you can go to the Build -> Java Options -> Classpath tab, and click on the "Add Classpath" button. That will add a "%(CLASSPATH)" entry, which is our syntax for expanding classpath variables.
For live errors, it works off of the same class path as the build, and should not look at the CLASSPATH environment variable directly. And that seems to be the case when I tested it this morning.
So my test setup is:
1) project with enough jars to trigger the behavior where the classpath is passed in a jar file.
2) %(CLASSPATH) added to the Java Options -> Classpath, to get the behavior you expected.
3) A few jar files that are outside of the Java Options classpath, but specified in the CLASSPATH environment.
With that, and allowing for the CLASSPATH not be included by default, I've gone through your experiments, and I haven't had anything go wrong, except when I removed needed jars from CLASSPATH or the configuration. (although I did shoot myself the foot a couple of times at the beginning and had to restart the tests, when I forgot that vsbuild invokes javac only when there source changes it knows about).
And in one respect, the last experiments you list as working don't make sense to me, unless Add Jar Wildcard is adding more jars than expected (I have seen your post about that, but haven't dug into it yet). The UI is different, but it adds them via the same mechanism as the other choices.
So we need debug output, and I'm still working on the code for that. When that's done sometime later today, it will allow us to turn on debugging + saving that classpath jar via the Verbose checkbox that's in Project -> Project Properties -> Tools -> Build. And from there, we can go with the simple configuration of what you wanted for 1, with some items in CLASSPATH, others in the Build configuration. Avoiding "Add Jar Wildcard" until we can confirm it's not doing some extra unwanted inclusions.