The history of the objThreadMap restriction starts with
these checkins by Mo Dejong. First he tried adding a field
to the Tcl_Obj struct:


And then followed up with the objThreadMap approach:


The checkin and ChangeLog comments indicate the worry was
about races between multiple threads manipulating the
refCount field.  This is a valid concern, but with mutex
care and sufficient thread isolation it can be managed
without imposing such a strong constraint.