空DEF、空GOSUBを定義してベンチマークを作ってみるとよく分かると思いますが、DEFはGOSUBに比べて遥かに遅いです。ローカル変数や戻り値を処理するためのオーバーヘッドが発生するためだと思います。 STG,アクション等、高fpsを要求するようなものはGOSUBで。ツールやパズル等、fpsはそれほど重要ではなく「何か操作したらその時に複雑な処理が発生する」ような場合はDEF関数を利用する という感じで使い分けても良いかもしれませんね。