I found an issue while using TclBlend in Tcl 8.5, and the attached script demonstrates it. Basically, the conversion of an internal representation from list to dict is special cased to keep the representations of the elements, while the conversion from dict to list passes through a string-only representation. This appears even in code that does not explicitly use dict because the array get and set have changed to use dict now.
TclBlend uses a special internal representation to hold references to Java objects, and if the internal representation is lost then the underlying object might get freed. This violates the "everything is a string" but in the past it's been sufficient to just make sure that the Tcl script itself was careful with the references it obtained. If the Tcl core changes internal representations beyond what is needed then an extension like this really does not seem to have much of a chance of working.