3. Some compilers don't even try to optimize a function containing a goto.
I call bullshit on this.
As to your other points, don't forget that C doesn't have labeled loops, like java or perl.
So no, "goto" is NOT easy to avoid, if you have to break out of an inner loop. The alternative (set a variable then test it on each iteration of each outer loop) is ugly, messy, inefficient and is obfuscating the program logic.
Most people that pretend to avoid gotos are cheating by "refactoring" the resource freeing blocks into separate functions and then using multiple return paths, which is just as anti-Dijkstra as going full gotos everywhere.