Sorry, I've lost track of this part of the discussion. Is functions cloning needed for non-copying messages, or is this tangental?
It depends on what you want to be able to pass across such non-copying messages, basically. For simple things, it's not needed.
My impression for zero-copy messaging was to define it as closely to regular messaging as possible: visible behavior almost identical to structured clone, except for the side-effect of disabling the object after the postMessage call completes and some special handling if multiple objects receive the message.
Then you don't need to do anything funky with functions. -Boris