Charles Miller explains, in copious detail:
Given the OPML spec, and the above examples, we can now ask ourselves a simple question: What is the difference between accepting OPML, and accepting arbitrary XML documents of unknown formats?
Answer: An OPML document limits where you can put text nodes.
Read the whole thing - it explains what I meant when I said I had to constantly munge my OPML import support in BottomFeeder early on. Even now, it works only because the entire field of aggregator developers has seems to have a simple attitude about that bit of code in their applications: "If I don't touch it, maybe everyone else will leave it alone too".