This is a design decision. I wanted to base the module as closely as possible on the XPath specification as possible (as this makes implementation easier - and believe me it was no easy task writing that module). If you look at
the section on text nodes in the XPath spec, you'll see how CDATA sections are just treated exactly as non-CDATA section nodes. In order to be able to merge adjacent text nodes, the concept of CDATA nodes had to go.
I know that probably doesn't give you the answer you wanted. If you *really* need CDATA information in the output stream, I suggest you look at something with a more feature rich API like XML::LibXML, SAX, or XML::Parser.