> it's not possible to make manipulations in place
What did you mean here under manipulations?

That is expected in tcl, that some "static" code objects has a refCount greater as 1, despite you see this object only once, because of interp/namespace literals, code compiling etc.
Guaranteed refCount = 1 you're going to get, if it will be created and returned to interpreter inside any command, and will be used nowhere otherwise.

Example:
proc test {} {
    puts [::tcl::unsupported::representation [linsert {} end 1 2 3]]
    puts [::tcl::unsupported::representation [string tolower DATA]]
}

Furthermore you can always create a duplicate with refCount = 1, using function Tcl_DuplicateObj.

Manipulation of object with refCount > 1 is allowed also, for example change to your own Tcl_ObjType (internal representation), but only if it string representation will be not changed or can be always regenerated to the same within your own Tcl_ObjType.

An example for such "complex data structures" are objects contains "handles" etc.

So long it's not clear as a bug, I will close this issue as invalid. Please provide more info if expected.