I thought that a lot of Smalltalk's power was in the mutability of its objects, notably the debugger and "become:" features. Does the JVM really support that?
while there are some tricky parts, we haven't run into anything where the jvm prevents us from doing anything that is smalltalk.
the magic of the smalltalk debugger is largely based on 'thisContext' which reifies the stack into a first class object; implementing thisContext was trivial. we have more work to do around exposing that to debuggers but don't forsee any huge issue.
james did a short, 30 minute presentation at ESUG in 2011 about implementing Smalltalk on the JVM that might answer some questions: