Jumping out of nested loops. Implementing higher level constructs like yield or defer. State machines. Compiler output that uses C as a "cross-platform" assembly language.
All of them are better served with more specialized language constructs but as a widely applicable hammer goto is pretty nice.
I don't expect C to have good error handling or generators any time soon but with goto I can deal with it.
Compiling HLL constructs in some of those scenarios ultimately produces a jump statement. So, it makes sense that a higher-level version of a jump would be helpful in the same situations.
All of them are better served with more specialized language constructs but as a widely applicable hammer goto is pretty nice.
I don't expect C to have good error handling or generators any time soon but with goto I can deal with it.