[注意]以下は個人的な感想です。 1)GOSUBは、汎用性が高い。しかし、その特徴を生かすためには、引数(パラメータ)の渡し方や、ローカル変数の管理など全て自前でやらなければならない。GOTOは、さらに汎用的です。つまり、自由と言うことです。 2)DEFは、引数やローカル変数の管理をプチコンがやってくれるため、そこを楽して本来やりたいことを考える時間に割り当てることが出来ます。不自由だけど、仕様に不満が無ければ、とっても便利です。 3)GOSUBは、CPUによって違いますがアセンプラのBSR(ブランチサブルーチン)命令ややJL(ジャンプアンドリンク)命令相当です。今やニッチな分野かもしれませんが、GOSUBが使える場面もあるかもしれません。 4)DEFの仕様に不満が無ければDEFを使った方が楽できます。DEFで問題があるときはGOSUB/GOTOを使えば良いと思います。