When I run the algorithm they give on the example CFG, I end up with
B1 in its own dominance frontier. This makes sense, since B1 dominates
a predecessor of itself (B7), but does not strictly dominate itself.
However, the worked example shows the dominance frontier of B being
empty. The book explains this by saying something along the lines of
"the compiler notices that B7's immediate dominator is B1, so it adds
B1 to DF(B7) and to no other node", but does not explain why the
algorithm terminates its backtracking before B1, instead of continuing
up the dominator tree to B0.