Early termination of loops, assumptions about the values present, locality of reference, mutated state.
If your problem is speed, I don't think it necessarily is actually more runtime efficient. If your problem is die early, then it loses information an assert() would preserve. If your problem is a dislike of if-elif-elif- then I think you argue more for a case: statement than a GOTO.
I used them enough in the past to suffer the consequences of debugging around them. I don't miss them, they haven't consciously been in my back pocket armory for some time. I'd rather find other ways to fall through/out-of code to a fixed point.
I got over it.
I did have to use it in error handlers in Lotus Notes apps back in the 90s/00s, but that didn't make the apps better, it just was how the scripting worked. I haven't once felt the need for a goto since then.
So unless you can tell us a scenario where they work better, no - they are not needed and would cause more harm than good.