Even though using GOTO is not recommended, it may be considered more explicit and so an easier way to really “see” what is happening in the code. Then, after introducing GOTO, looping can be taught, “And now here’s a way to do the same thing without needing a label!”. And GOTOs are still sometimes used sparingly in some languages, e.g., to break from an outer loop from within an inner loop.
Thanks for bringing this up. I’d be really interested to dive into this. One of the big challenges I’ve found is that the terminology used in programming just doesn’t relate that easily to the concept that is actually at play.
Since I actually worked through some clearly worded instructions on what is actually happening in loops, I’ve managed to get a sense of what is going on but still it’s a bit fuzzy.