But advice to not use goto was already voiced more than 20 years ago when bad programming style was prevalent in the old programming language BASIC.
One of the earliest "warnings" against the use of goto is Dijkstra's letter Go To Statement Considered Harmful
(the title is by Niklaus Wirth, the editor of Communications of the ACM
at the time - CACM is journal that printed Dijkstra's letter), published, IIRC, in 1968.
Dijkstra's argument was that most uses of goto makes it impossible to do structured programming. Note also that Dijkstra would make the same objections against constructs we all love: return, last, redo, next, eval. Just like goto, they allow blocks to have more than one exit point.
But that has nothing to do with subroutines.
Well, if I weren't able to use subroutines, I'd probably use goto
a lot more than I do now.