1) gotos are 100% avoidable, and hence not the only way.There are places a goto is the only way, but it is a tool.
2) From the point of view off efficiency, they are probably better code.
3) Where "while" and "for" are natural, better to use them.
4) better a "goto" than forced "while" or "for" with tricks for avoiding "goto".
5) I would say that a "while", a "for" and similar are more a "tool" than a "goto".