I seem to have forgotten to unsubscribe and this thread caught my eye. Oh well. As a journo, my heart goes out not to developers but to users. So:
Among reasons for having modules two are obvious: + Facilitate distribution: Coders can release directly without reference to a central distributing authority. Users can shop around for the pieces they need.
+ Facilitate maintenance. Coders can amend their code without referring to a central maintaining authority. Users can upgrade modules incrementally during system life.
In practice, the two conflict. Users get caught in DLL hell. Microsoft are not entirely dumb, but they realised it too late because it is a scale effect. The redhat people noticed the issues in upgrading Linux and tried to fix them with the rpm database. It sold the distro, but ultimately didn't work, just pushed back the problem by about 2 years, and then scale effects caught up again, as soon as the number of sources for things increased. Nowadays, with all these systems, people do a few customisations, then throw away the fragments and re-install a whole new boxful of toys again. The reason for the frequent release of complete Linux systems, when Unix is inherently modular, has become the certification by the vendor of coherent behavior of the whole.
I urge you, when analyzing this issue to look at the fundamental ways in which all known approaches have failed. Solving your module problem now for the existing handful of knowledgeable and sophisticated Squeak users/developers may not be the same as solving it for a distribution which has made it out of the lab into the wild.
Edmund