Oh, and I just tested this a bit more, and it actually causes a "cannot append to list" error message:
obj/thing
var/mob/owner
mob
New()
..()
var/obj/thing/T = new(src)
T.owner = src
verb/test()
var/savefile/F = new()
Write(F)
src << F.ExportText()
Read(F)
Not sure exactly why... I think it's because it's getting caught up about the same object being in two separate contents lists.
A very bad comparison. usr breaks quite commonly, but what you're comparing it to here isn't something that breaks at all, and certainly not produces 'garbled' or malformed results or doesn't work as you've claimed; it works, and works fine, as expected.
And even if so, there is no problem with this - there is a good reason for that and it's just the saving doing its job.