This situation with different Java versions is not so simple. In case of Nokia 9210 Java (PersonalJava) the Java implementation is based on JDK1.1.x, not J2ME. Then we have the J2ME/MIDP runtime environment for testing midlets. Different VMs are needed for different devices because of different features and resources.
The JVM in PersonalJava does not support running multiple applications at the same time in the same VM. However, the internal implementation of the VM uses shared libraries that are loaded to memory only once, even when we have several copies of the VM running.
We are looking into ways to minimise the memory overhead in the future.