So what your really saying is that the automatic XML serializers in .Net are the issue not WCF.  

For instance I could build up the XML manually and return a XMLElement.  This is what I had to do for my service.  Using these attributes:

ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare

Obviously it's more work than getting automatically serialized objects but it's still doable.