First -- I'd like to take the opportunity to thank you for Inkscape... Truly an important application to have as open source.
I am one of the matplotlib developers, and somewhat recently extended its SVG output backend to save the glyph outlines directly in the SVG file. (To remove the need to install obscure math fonts everywhere the SVG file will be viewed.) It uses <defs>/<symbol> to define the character and then <use> to render them. Yes, SVG fonts would probably be better for this, but the lack of support for them in Mozilla and other tools makes them a no-go for now.
One of our users recently came across a problem where copying from one SVG file into another mangles the text. See his blog here:
http://assorted-experience.blogspot.com/2008/03/inkscape-matplotlibs-svg-one...
From poking around the resulting XML, what seems to be happening is that the <symbol> elements in the pasted data are reassigned new ids, but the <use> elements are not updated accordingly, and thus the <use> elements end up referring to symbols in the existing (pasted onto) file. Matplotlib, at present, assigns ids to glyph outlines sequentially as they are encountered, so there is no attempt to assign "universally" unique names, and id clashes across different files are guaranteed.
There's a simple workaround I'm considering at our end, which is to use hashes on the path content itself as ids. This would also ensure that glyphs that are common between files will have the same id, for whatever that's worth. It does seem to at least make things behave as expected in Inkscape.
However, I wanted to bring this to your attention because
a) maybe this is an Inkscape bug, and it should be correcting the defs/use links on a copy/paste operation.
b) maybe my understanding/expectations aren't correct and I'm just horribly misusing the SVG spec...
I've attached two example SVG files. If you open both, and then copy the contents of one into the other, you can see that the title text will be incorrect.
Cheers, Mike