I bet when the data goes through the Mac clipboard code somewhere it uses a C type null terminated string copy so the \0 is taken as the terminator and lost from the data.
Yes, something like that. It can also be the GTK quartz backend or maybe the Mac clipboard can be used in text mode (where it strips `\0`) or binary mode where it doesn't (copy/paste has to work for e.g. pictures where `\0` needs to be preserved).