The three reasons I can think of:
1. by predeclaring the structure, you can show debugging UI of the full graph, even if you've only executed part of it
2. Pregel can make it easier to reason about global state transitions (you can accomplish this in other systems too, if you set it up right)
3. by enforcing heavier structure on your program, you can ask the AI to reason about the whole graph or generate new graph parts
The downside is that this is an abnormal way of writing computer programs, originally designed for high-scale processing (Hadoop, Apache Spark, etc.). If you want to dynamically change the control flow of your program or special case control flow at various points, you'll wrestle against the up-front graph structure.I personally have more of a preference to write normal-looking code, without having to predeclare my execution graph.