> without any regard to whether the code is running in the same thread that created that Tcl_Obj.

Why it is expected? The access to the objects in the tsv-storage is mutex-protected, and each set as well as the result of any tsv-call should always contain a safe duplication of the object (thus safe for any thread).

BTW I cannot reproduce the segfault with your example.