To circumvent Mathematica's internal representation, I decided to use the operating system. Of course, this means it's only going to work on Mac OS X because it uses Cocoa bindings in the built-in Python interpreter:
copyAsUnicode[t_] := Module[{
out = FileNameJoin[{$TemporaryDirectory,
"MathematicaOutput" <> StringJoin[Map[ToString, DateList[]]] <>
".rtf"}]
},
Export[out, t];
Run["printf \"from AppKit import *\n\
board=NSPasteboard.generalPasteboard()\n\
content=NSData.dataWithContentsOfFile_('" <> out <>
"')\nboard.declareTypes_owner_([NSRTFPboardType], None)\n\
board.setData_forType_(content, NSRTFPboardType)\n\" | \
/usr/bin/python"];
DeleteFile[out]
]
The idea is to export to RTF and read the result to the clipboard outside of Mathematica. The function is invoked for example as copyAsUnicode["αβ+Mod[δΨ+ρ2]"]. This example itself was copied that way, too, i.e., I typed copyAsUnicode["copyAsUnicode[\"αβ+Mod[δΨ+ρ2]\"]"], which I again copied the same way... OK, I think you get the idea.
Of course the next step would be to make this into a Palette that acts on the NotebookSelection, but the above is the main step. Maybe someone else knows how to do something like this in other operating systems (I don't).