Sorry, no, it really is trivial. And I'm not talking about ICCCM or any other existing implementations, just if you were to start a new one from scratch, as is the case for Wayland.
You can try to make it awfully complicated by trying to copy and paste other stuff than text and not choosing a common character encoding (utf8), but then you have yourself to blame, not the trivial problem at hand.
And any sane copy&paste implementation that supports "complex" types is a simple text one at heart where the programs that want to support things like pictures do that by passing the needed information on in the form of text, and the complex data is just a temp file. Then they can mess up the extension area as much as they want without breaking simple text copy&paste for the rest of us.
Limiting the scope of something is better software engineering than trying to support everything.
But as you seem to have some experience with it, please enlighten us with one example why copy and paste is oh so hard.
Writing a 3D driver with decent performance, now that is non-trivial.