you disreguard many factors... firstly though the example is meant to be in C, it is quite valid in C++, and is really not even a language specific idea honestly... the example could very well be translated into many languages... the topic is not the language nor language specific solutions... exception handling is not available in C in any easy or simple means though it is the optimal solution in C++ if you disreguard the overhead associated with its use...
the idea is meant to be clean with minimal overhead and minimal complexity to the reading or function of the code(and in C)... goto overall is the simplest cleanest easiest and quite probably the fastest solution to the problem hence it is an "argument" for its use as opposed to the function version, or the flag version... or even exception handling...
in essence this is an argument for the use of goto... which is a multi-language tool.
i posted it because im curious to know if i missed something... or is this infact the best solution... and it doesnt belong in the C forum, because its about goto and programming in general... not the c language