ごもっとも。
(length . (:[]) . (id $!)) undefined
のつもりで書いたんですが、式はそうなってなかったですね。
結局この場合、idを評価する前に終わってしまってるってことか。

例外になるタイミングが理解できないです。「タイミング」なんというものを
考えていること自体が間違ってるのかなぁ…

id undefined は id が返す undefined が例外を生成する
id $! undefined は idに適用する式 undefined を評価したときに例外を生成する
と考えてしまうのですが(なのでidが正格という意味がわからない)、
違うんですよね、きっと…