実行ファイル

RevaForthでは実行ファイルは命令経由で無いと作成できません……というのは当たりでした。
あんまり理由もなさそうなのですが、無理やり理由を考えるとするならば、開発環境そのものを弄ってプロセスイメージを保存したものをアプリケーションと称するSmalltalk型開発モデルを採用しているから、でしょうか。
Revaのプロンプト上でsave xxx.exeなどどすると今の状態が保存され、別にそんな必要ないと思うのですが現在のRevaはそのまま終了してしまいます。xxx.exeを起動すると、保存した状態が再現されます。定義したワードなどもそのままです。
その際にappstartというワードに何か設定しておくと、再開はそこからとなります。ですので実行ファイルとすることを前提としたForthソースは、ワードを定義するだけ定義したらいきなりsaveして終了するだけのプログラムとなります。

:: ." this is forth exe!" bye ; is appstart
save test.exe

reva test.fでtest.exeが作られ、test.exeを実行すると"this is forth exe!"が出力されます。
こういうのをTurnkeyアプリケーションと言うそうです。ForthだけでなくSmalltalkで検索してもそれらしい候補が出てきますので、一般的な用語なのでしょう。きっと。
Win32Forthとかgforthとかはふつーにコンパイルできるような気がします。
Forthは実行しかない言語ですので、地の文でsaveする限りはsaveの呼び出しそのものは実行ファイルには含まれないはずですし、ワードは定義された時点で機械語ですので機械語が保存されるはずで、ふつーにコンパイルするのと比べ効率には影響はしていないと思われます。あえて言うならインポートしたAPIのアドレスがどうなってるのか謎なことぐらいでしょうか。
デフォルトでは対話環境含め色々読み込まれてますので、最小のexeを作りたい時はrevacore.exeで実行するといいようです。それにしたって21kとか10kバイトとかの世界です。vectorひとつインスタンス化したら軽くぶっ飛ぶサイズの中に、自己書き換え可能な実行環境の全てが収まっています。