The reason we didnt do this is because it's easy to get caught on complicated situations. What would happen if you want to build an expression (X) AND (Y) OR (W)? What's the semantic when more than one attribute is present (OR or AND)? and this kind of things.
Hence imperative code would be prefered.
Figuerres, what I've shown is the basic of importing/exporting applied to Silverlight scenarios. It may be confusing if you are not buying into *why* MEF is great technology.
The case in point is MEF is all about extensibility. With this goal it encourages a design that enables reuse and isolation. This way you can reuse your "parts" across projects and save time. By encouraging a design that depends more on aggregates we encourage
the Composition over Inheritance design principle, which opens door to customizations through extension points.
That said, there's no shortcut to understand the why. You need to feel the pain of your existing development model and see how MEF helps with that.