私はIFにENDIFは必須じゃないけどELSEIFには必須って言うのをつい忘れて時々どこだか分からないエラーに悩まされることがあります^^;
GOTOは分岐制御が自由なので多用するとスパゲッティになりがち、というのは昔から良く言われていますが、近頃はちょくちょく使うようになりました。例えばGOSUB→GOSUB→GOSUB→RETURN→RETURN→RETURNとしていたところをRETURNの後に何もしていなければ、RETURNは無駄なのでGOSUB→GOTO→GOTO→RETURNとしてみたり。
私の場合、GOTO使ったとしてもGOSUBに比べれば圧倒的に少ないので、それがかえってプログラム中で目立つので逆に読みやすくなっていたり。
結局のところ、GOTOも使いどころが利にかなっていれば、そんなにスパゲッティにはならないんじゃないかなぁと思っています。
ひと〜つ、プチコン家訓。GOTO使うとスパゲッティになっちゃうと言ってるやつは、GOTO使わなくてもスパゲッティこしらえてるはずだ(言ってない私もこしらえてますが(^^ゞ)。