Mi opinión es que te estás complicando demasiado. No veo la necesidad de cargar los scripts de manera independiente salvo que sean demasiado grandes. Y, si este es el caso, ya tenés la solución para anular las variables usando un namespace y quitando del DOM el tag script cargado. En cuanto al css: lo mejor es usar una única hoja de estilos sin carga dinámica, ya que es lógico pensar que todo tendrá una estética común y, entonces, la mejor opción es reutilizar estilos. En cuanto al DOM, sobreescribir la capa principal (div) con innerHTML ya eliminó todos tus problemas de guardado en memoria de los elementos DOM (podés comprobar que eso nulifica todos los elementos creados en esa capa). Te queda la gestión de eventos. Cada vez que los asignes deberías guardar una referencia a los mismos dentro de un objeto para, en el momento adecuado, recorrer ese objeto e ir eliminándolos (removeEventListener y detachEvent).