No. Go uses stackful coroutines. This is more like an implementation of async/await in C.
Also, this is less like a goto, and more like a setjmp/longjmp.
You want something to create a union of all the relevant local variables of each state. Doing this efficiently is non compositional and so requires language support.
Many control operators involve continuations with closures, and cannot be desugared to goto as such.