The proof is elegant, but the whole flooding process on arbitrary polyhedron may be a bit difficult to follow (especially if you are trapped by details like saddles above some peaks, lakes with different altimeters, and how gravity works over the polyhedron).
The following simpler formulation of the flooding process may be easier to follow.
initial state: num_islands=1; num_lakes=V
final state: num_islands=F; num_lakes=1
how state changes: Each time a saddle sinks, either two lakes are joined (num_lakes--) or an island is split (num_islands++)
The whole process takes (F-1)+(V-1) events to finish, which is equal to the number of saddles E.
The following simpler formulation of the flooding process may be easier to follow.
The whole process takes (F-1)+(V-1) events to finish, which is equal to the number of saddles E.