This patch fixes a potential exponential behavior due to no memoization in a DFS.
For example, consider such a graph:
ret -> a0, ret -> b0,
a0 -> a1, a0-> b1, b0 -> a1, b0 -> b1,
a1 -> a2, a1-> b2, b1 -> a2, b1 -> b2,
a2 -> a3, a2-> b3, b2 -> a3, b2 -> b3,
...
If this DAG has n layers, the all paths WalkChainUsers will walk through is O(2^n); after memoization it will be O(n).
There is no functional change.