I also can't seem to get there with a plain goto. I can't jump out either. Probably the computed goto extension will do the job, but that is cheating.
To give just one or two examples of why this is doomed: imagine you want to jump "inward". If the inner function takes any arguments, you haven't passed them! And if you jump inward, and the inner function then hits a return statement, do you return to the outer function, or to its caller?
And after you resolve all such semantic issues, you need to actually implement all this, without slowing down code which doesn't use this feature.
And all this complexity doesn't buy you much because you have two other options:
1. just call the function to jump inwards, and simply return to jump out.
2. Don't bother with nested functions, and just inline the code.
There's also the C programmers that come from assembler for whom the construction expressed by Duff's device is very natural. They would have a hard time believing that somebody find it surprising. For those people, it is obvious that the code should compile and its meaning is clear, as can be mapped directly to the compiled code.
switch (count % 8) {
turns into jmp [QWORD PTR .L4[0+rdx*8]]
just like you'd do if you were doing the assembly by hand.