This will behave incorrectly in the (contrived) scenario where the DSD has multiple filters, _some_ of which are compositions, and _some_ are DefinitionLibrary references.

I think it would be clearer to explicitly just test whether there is exactly one rowFilter and it is a Composition, then take one branch, else iterate. (And this would fail fast in my contrived scenario.)