In inclusion, you rely on the file extension .opml when processing an element. I suspect this will prove problematic. Why not use a type='opml' attribute instead.
In extending OPML, you say that extension element AND ATTRIBUTES can only be used if defined in a namespace. In OPML 1.0, you were allowed to add any attributes to outline in the OPML namespace. This will cause some 1.0 feeds to be invalidated by 2.0.
The description attribute in 1.0 often contained HTML markup, but according to this spec, it may no longer contain HTML markup. Could we add a bit of text to specifically allow HTML markup in description.
Requiring auto-disco to use rel='outline' invalidates most existing implementations of OPML autodiscovery. Maybe the value SHOULD BE rel='outline', rather than IS.