Can we allocate this flag also as part of the DepthWalk?  The reason is, if a walk gets reset and runs again we'd allocate yet another flag.  Do that enough times and walk suddenly stops working, because there are no free flags.

Explicitly releasing the flag is hard from a generator, there isn't an API to have the walk tell the generator that the walk is being reset.  So the easiest thing may be to just allocate this at the same time as the UNSHALLOW flag in the individual walk classes.