Not quite a formal argument, but a fairly convincing one for O(n):
The successor function always takes the shortest path from the starting node to its successor. It either goes down or it goes up, but once it's started doing one it can't change to the other. Therefore it has to take the shortest path.
The successor function has to produce the same output as the depth-first method, so it has to visit the same nodes in the same order (i.e. the outputted ones, it doesn't have to go past the same ones, although it does).
The depth-first method also always takes the shortest path between each outputted node (in each step it goes either down or up, not both).
Therefore each method takes exactly the same path, and are in fact equivalent.