A pragmatic answer "why": it uses the data model implied by
SAX, which treats characters "quoted" by "<![CDATA[" ... "]]>"
like any other characters (but without using '&' and '<' as
markup delimiters).
I think that's the right model. It's clear from 2.7 that the
text inside a CDATA section is character data, not markup; the
example is clear, if the text could be misunderstood.
Since 2.4 makes clear (sentence 1!) that the _only_ two sorts
of stuff in XML are "character data" and "markup", so there's
no way I could justify treating space inside a CDATA section
differently from other characters (in terms of data model).
Hence it's not possible to distinguish whitespace characters
that are the content of a CDATA section from the same text
that's outside of a CDATA section.
- Dave
p.s. Yes, if there's confusion, the spec probably needs to
be clarified. Not a crime in any 1.0 spec.