>but for something written in the last couple of years to have over a thousand of them is very surprising
Hardly surprising. Gotos will be found by the hundrends or thousands in C projects like compilers, kernels etc.
It's used for localized consolidated error handling, but also for stuff like parsing code (bison generates tons of gotos IIRC), state machines, etc.
If anything it's the old "Goto statement considered harmful" that's a little too naive.