After my last foray through Squeak,

I haven't followed subsequent evolution of the language/environment;

I'm wondering: has anyone taken on integration of an idea of something like a native notion of modules/versioned package management?

I enjoyed the premises of working with changesets and a monolithic image, to a point;

but it always seemed it would not be that hard to integrate a contemporary notion of modularity...

I'd love an environment which allowed me to develop in Smalltalk, debug in an image, yet freeze the dependencies, with smart ephemeral compilation and the like, and...

Iceberg for Pharo: https://github.com/pharo-vcs/iceberg

Monticello: http://www.wiresong.ca/monticello/

I haven't used the latter, but the former is easy to use and based on libgit. Create a new repository, select the packages that go into it, make the initial commit. After that it'll tell you when the changes don't match the repo. You can select down to the method level since it's aware of the language's syntax and semantics. The generated repository looks like the Iceberg repo itself, a collection of directories for the packages and then .st files for the classes and their contents.