As Anthony pointed out the key factor is that he has implemented proper Closure behaviour. In the process he sucked in my new CompiledMethod format changes, fixed a few method header infelicities and reimplemented the callstack mechanism. The latter is responsible for most of the performance improvement; for some explanation of what happens you might find it useful to read Eliot Miranda's OOPSLA 97 paper on BrouHaHa. Anthony implemented a variant of that stack mechanism but exposed it to the Smalltalk code rather than hiding it. I'm not entirely sure I like that part, but I haven't had time to examine it properly yet. The worst problem of which I'm aware is the lack of support for swapSender: and callCC - important for coroutining etc.
The VI4 project is trying to gather together all the plausible changes that peolpe want and which would require an image format change or would other wise break back compatibility. For example, renaming the plugins more sensibly ( change Klatt to KlattPlugin, etc) would save some confusion (ever got lost trying to work out where the code for ZipPlugin is? - in InflatePlugin & DeflatePlugin classes!) but means changing assorted image code.
We could even convert all bitmaps to little-endian, since only Mac uses big-endian and we know that nobody important uses Macs.
tim