This traversal of the optimizer DAG computes the information needed to track
branches and joins in the data flow. This is important to support plans
that are not a minimally connected DAG (Such plans are not trees, but at least one node feeds its
output into more than one other node).