Is there a way to preserve CDATA export in XML

Generally speaking it should not matter whether to user CDATA or entity encoding.

This makes me wonder: Do we fail to properly encode certain entities? Or is the parser incapable of properly dealing with encoded entities? Please share an example that is invalid XML according to your parser.