I agree that isolation is important. The OSGi Framework was only ever designed to host a single "application". If you deploy multiple applications to the same framework without isolation, you will get interference between the two, such as undesired sharing of packages and services.
For example, you could thoroughly test one application and find that it works. Then you thoroughly test a second application and find that it also works. Finally you deploy both of them into an OSGi framework and find that neither works! This is not good...
The subsystems spec does provide isolation but it is complex and the implementations immature. I would suggest simply instantiating multiple OSGi frameworks. This can be done easily within a single JVM, there are no static or singletons in OSGi that would prevent it. The basic code required to instantiate an OSGi framework is around 5-10 lines.
UPDATE: For detailed information on how to instantiate a new OSGi Framework, see my blog post "How to Embed OSGi"