There's a far bigger concern about general sharing of
a Tcl_Obj struct by multiple threads, though, and it
is the volatility of the internal representation. Shimmering.

Any code that interacts with an internal rep commonly has
a structure of using objPtr->typePtr to determine the routines
to use to act on the internal rep. Those routines proceed on
the belief the internal rep's nature is not going to change
while the routine runs.  All internal rep access and manipulation
is written on a foundational assumption of single-thread access.

If you get multiple threads passing through changing intrep details
out from under each other, there is going to be serious trouble.