It was recognized that goto was not necessary if one had proper control
structures in a language (if/else, while), and that code with no (or
minimal) gotos was easier to read and understand.
This is true for simple flow control. However, when you had to break out of multiple levels, or continue not the inner loop, but the middle loop, the use of extra booleans sure made the code less understandable than a 'goto' a label that stood in for that purpose... This was something that wasn't well understood by language designers, and even today C and C++ neither have good flow control beyond the basics. Even though both break and continue could take an optional count without breaking old code....
Warner