One reason I’ve seen in the past for not implementing TCO (and it being seen as difficult) in Java is that the permission model in the JVM is stack-sensitive and thus tail-calls must handle the security aspects.
I believe this was shown to not be an obstacle by Clements and Felleisen [1] [2] and I’m pretty sure the MLVM patch mentioned in the question deals with it as well.
I realize this does not answer your question; just adding interesting information.
- http://www.ccs.neu.edu/scheme/pubs/esop2003-cf.pdf
- http://www.ccs.neu.edu/scheme/pubs/cf-toplas04.pdf