多少議論が熱くなってきましたが、88SR当時のマイコン少年少女の熱気には勝てる訳ないので、そのまま続けます。
前項の議論を見ると、FOR/NEXTのループとGOSUB/RETURNのサブルーチン呼び出しとはどこが違うのか、との観点を抱いた方もおられると思います。鋭いです。私がソフト開発の社長なら引っこ抜いてでも雇いたいです。
計算機科学の立場から言うと違いは無いです。どちらもラムダ関数呼び出しに相当します。この場合、末尾再帰が単純ループ、つまりGOTOに相当する、という逆アイデアというか気づきが必要でしょう。数学的帰納法に相当して、分岐しなければ単純ループになります。分岐すると組み合わせ爆発が起きて、本質的にそういった問題はありますけど、計算機科学では効率の観点上、なるべく避けます。
その昔の話で恐縮です。今は忘れられたワーニエ法というのがあります。今はHIPOと呼ばれる方法で残っているはずですが、こちらも相当のマニアとかベテランでないと想起できないはずです。SE的な立場の方は学習しておくと、きっと良いことが起こると思います。
要点はIPOの部分で、前処理→ループ処理→後処理、の感じになります。計数型電子計算機(コンピュータ)をわざわざ使うのは(単純)ループ処理ができること、と断言して良いくらいで、ただしループ内処理が本当に同じ処理なら全くの無駄で、ではなくて次々と次のデータを処理するから値打ちがあります。
言いたいのは、関数呼び出しには振り分け担当の前処理(および後処理)を含む総括部分への呼び出しと、ループ本体担当への突入への関数呼び出しの2種類が分類できる、と考えると、構造化プログラミング全盛の現代風になるはずです。
ですから、BASICでは両者の文法が分かれていて、前処理/後処理を含む部分がGOSUB/RETURNで、ループ本体が、当たり前ですが、FOR/NEXTです。脱出はラムダ関数だとRETURN相当です。しかしBASICなど通常のプログラミング言語では明確に文法が異なります。もちろん、そうした方が(読む人間に)分かりやすいからです。