LINQ + Reflection: Querying the Object Graph

Yuriy Solodkyy demonstrates the \<a href=""" target="_blank" rel="noopener noreferrer">combination of LINQ and Reflection APIs, a technique which could prove to be tremendously powerful and which strikes me as allowing LINQ-enabled languages to have a level of "dynamism" that puts to shame duck-typing.

Could this simply replace the Visitor pattern with an approach that needs no cooperation from the data structure?

Would this allow an Abstract Factory that allowed you to dynamically find all products of one Factory and replace them with those of another?

[via Steve Pietrek]