Goto is absolutely the right tool for: "the instruction pointer finds itself here, and at this critical juncture in the algorithm, one would rather prefer that it were over there, for want of correctness, if not beauty."
One job is when auto-generating source code. It's much, much easier to generate a graph as a collection of blocks connected by various goto's and if statements.
This does not adversely affect modern optimizers - they'll figure out the loops from the goto graph. At least the D compiler does.