... just checked. When the node is from a document instance than serialize does keep whitespace (with or without xml:space).
And this clears up a confusion I had about what an element constructor is and what a direct element constructor is.
For fun I tried serialize(element e { ' ' }) which happily returns <e> </e>
Somebody wants to write that book on XML/XSLT/XQuery and whitespace? Title suggestion: "Whitespace matters"
--Marc