Here's an article from not that long ago detailing NASA's 10 programming rules for safety: http://www.rankred.com/nasa-coding-rules/
#1 is basically never use goto.
#1 is basically never use goto.
Quote:Rule No. 1 – Simple Control Flow
Write program with very simple control flow constructs – Do not use setjmp or longjmp constructs, goto statements, and direct or indirect recursion.
Reason: Simple control flow results in improved code clarity and stronger capabilities for verification. Without recursion, there will be no cyclic function call graph, and this proves that all executions that should be bounded are in fact bounded.