After some more prototyping this won't work:
1) I can't seem to figure out why JBoss UCL's don't like it, but...
2) URL ClassLoader's create their own URL's around the provided one if it thinks it is a jar (url doesn't end in "/"). So even if you provide a handler within the VFS url, the URL classloader isn't going to use it.
The biggest memory usage was due to creating new URLs for every single VirtualFile handler though. Some duplication for classpath entries should not be much overhead relative to the URLs being created for every jar entry.
We will be moving away from the URLClassLoader anyway.
Yes, we need a VFS based classloader badly. Adrian has this covered?