David's main contribution is that he gives all strategies the same signature regardless of whether they are compile time or dynamic. In the ealier mail, I was musing that this would be cool if we did it with TAO and demeter. Any class that implements the Strategy interface must be able to produce a list of traversabel parts from any given object. This is very flexible. Any class that implements the interface can be used as a strategy- perhaps one produced at compile time from a succint path description, or a class that takes a path description in its constructor.
Strategies are thus an easy way to implement data driven traversals.
This is a cool idea. You could spend some time thinking about cool DSLs that specify traversals. David's stuff allows more dynamic traversals, but is quite restrictive on what visits can be performed. Also, The user needs to write much more code to implement any traversal.