In short: What impresses me about the Java solution is not that it's flawless - what impresses me is that it works, that people actually use it to deploy code and this code actually works in the way intended.
Kind of JARs in Smalltalk? Pleeeeeease, please, please, please don't do that, no! *scream*
I've done Java in my main job since 1996 till last year from very small projects up to very large applications. And we allways have been fighting with JARs. They are a kind of a DLL hell, but only for the Java environment. Especially if you integrate different open source and commercial frameworks. They all use other frameworks, but almost every time in a different version. So you're fighting with the order inside your CLASSPATH every day and sometime have no way to resolve the conflicts. *sigh*
.NET has version numbers in their assemblies. So you can deploy the same assembly in different versions in the same system. But still own installed applications are depending on those external assemblies. That often leads to problems too.
What I really like when working with VisualWorks is, that I integrate the right parcels into my image, most time without version conflicts. And if there's one detected through my tests I can fix it inside my image. This image is then deployed en bloc, well tested and not relying on the admin to configure the libs the right way.
mue