There are visual languages that look the same as above, but lines are actually dataflow instead of function calls / control flow and the boxes are not opaque functions but introspectable data flow descriptions themselves. These offer some unique benefits, like transitive optimization and code elimination, that operate at a higher level than even full program optimization can achieve. (The latter being Simulink, for example.)
Then there are state charts (which are the big cousin of cumbersome non-hierarchical state diagrams as most people know them). These are, to me, practically a silver bullet regarding real-time systems. I went into automotive software development being very skeptical of Stateflow (coming from a classic C and Java background), but it has transformed the way I work with real time systems (even if not using it). It requires a huge upfront investment in analysis and thinking things through very thoroughly, which is why it is not particularly suited for systems with very volatile requirements, but it leaves you basically at state "done" after the design phase.