¿Puede haber varias clases con el mismo nombre de paquete en una máquina virtual (VM) JAVA?
Mientras se incluya una clase, esta esperará a que se creen sus instancias. Por lo tanto, no puede tener dos clases (paquetes) con exactamente el mismo nombre, y no necesitará (ni el entorno de desarrollo lo rechazará) cargar el mismo paquete y clase dos veces.
En cuanto al tema de las diferentes versiones, si realmente es necesaria la implementación, se debe implementar el aislamiento del entorno. Los programas no tienen control sobre el classpath. Para ser precisos, la máquina virtual carga el entorno antes de ejecutar el programa, por lo que el programa no puede ni debe cambiarlos.
El problema con la estática es que las variables estáticas son procesadas completamente por la máquina virtual. El programa no puede administrarlas ni asignarlas, y no conocerá la ubicación y organización de la estática en la pila y el montón en ejecución.