FileMakerをもっていないため、確認はできませんが・・・
evalから返される値は、仕様を確認すると直前に計算された結果となっており、「戻る」に渡している値とは関係しないようです(また、nako_excecも戻るとは関係していないようです)
(「戻る」は関数やイベント内で有効です。evalでの使用は動作自体が定義されてないかもしれません。evalやexecでは「戻る」を使用しないことをお勧めします。)
任意の値を戻すには、nako_execにてFM結果を設定するか、nako_evalにて直前の計算結果が最後に実行されるようにすることです。
うまく動かない理由ですが、ソース2の場合、最後に評価が終わる命令は、「オンの間」です。そのため、「オンの間」の計算結果が返されることになり、これは(値として意味がないから?)空欄になります。「もし」は値を伝搬する(「もし」の中の最後の計算結果を「もし」自身の計算結果にする)のですが、ほかの制御命令の多くは伝搬しないようです(ソース1がうまく動くのは、「もし」が値を伝搬しているためです)
もし以外の制御命令での値の伝搬については検討してみます。