I am working on blase (https://github.com/bramadityaw/blase), a language server for Laravel's Blade templating language. This is a proof-of-concept project that I plan to make into a submodule inside a more general PHP language server.
I admit that the example is contrived, and the control flow can be followed quite clearly because of the example's size.
However, imagine that f and g is placed in different source files in a large project. That's what Dijkstra detests about arbitrary labels, in that a program's control flow is only obvious to the guy who first wrote it.
My point is exactly that. C is a structured, procedural programming language that will only consider procedurally scoped labels. You can't execute it because it is not valid C that a standard compiler would accept, and we should be thankful because of that.