Hot Sea of Nodes take: despite him coining the term, Cliff Click's Sea of Nodes is not a maximal instantiation of the underlying concept. It still has unnecessary dependencies in the form of Region nodes.
Despite being called Regions, which are evocative of control dependence regions, they are actually basic blocks in disguise. In a control flow diamond, code in the common successor will have a control flow input on the Region node merging both branches of the conditional. If Regions were instead control dependence regions, then the successor would share a control input with the entry to the conditional itself.
You could go a step further than Sea of Nodes and replace Click's Regions with actual control dependence regions. You could also think of ways to eliminate some uses of control inputs altogether.
However, Click's choice here is actually a great engineering tradeoff. It eliminates a whole host of problems that arise with control dependence. In general, looking at C2 and his Simple project on GitHub, you can see case after case where he made a clever engineering decision to avoid potential problems.
To elaborate further, this basically boils down to the distinction between ordinary phis with a control input and gated phis (i.e. muxes). Consider the final form of the graph in Example #1 here: https://github.com/SeaOfNodes/Simple/blob/main/chapter05/README.md
The final Return node is control dependent only on the Start node (since the function always returns). However, its control input is the Region node merging the two control outputs of the If. The real reason to do this is to have a control input to associate with the Phi, which essentially maintains the placement of the Phi in a basic block and dramatically simplifies CFG reconstruction.
The more dependency-based approach would be to have the Phi depend only on the `==` node and have no control input at all. But rediscovering control flow in this scenario is quite a bit more difficult.