That turns out not to be the case. There are a number of XML DTD features which affect the infoset returned by a compliant parser. If they are in the internal subset, the parser MUST respect them; if they are in the external subset, then any parser that reads the external subset likewise MUST respect them.
Long ago I wrote a Java program called dtdcrunch <http://home.ccil.org/~cowan/dtdcrunch.zip> that takes an arbitrary DTD external subset and reduces it to just what is meaningful to non-validating parsers. In particular, default attribute values are preserved, as is any attribute declaration for a type other than CDATA. Entity declarations are also kept, and simplified element declarations of the form <!ELEMENT foo (foo)> are created for all elements whose content model consists only of child elements, and in which whitespace is ignorable.