One problem with the local symbol tables keeping track of their children is that the children will be wrong once dup
is called in succession for a scope and its children, since they're never updated.
This won't matter in current practice since that only happens during loop unrolling, and the ProcessingAsync pass is the only one that uses the children, but it's slightly unfortunate to keep around bogus information.
Originally posted by @mikebenfield in #28727 (review)