When you unload a module, as long as you aren't retaining any references to things inside that module, you don't have to completely deconstruct it to make its pieces be GC'd. Check out this article on Garbage Collection by Simon Bailey. He really crunched the MultiCore GC problem hard:
http://www.nutrixinteractive.com/blog/?p=132-=Cliff>