ということで、実はALLDEFS(ブートストラップコード)にはto is …で始まるisアクションが別に定義されていて、isメッセージに対応できないオブジェクトにis?等のメッセージが送信されたとしても、レシーバーがそれに応答する代わりにisアクションがコールされ(それに改めて?が送られることで)untypedを返すことができる、というのがこのカラクリの答でした。
上で使ったdisp ← <文字列> やdisp ← <文字コード>で文字列や文字が出力できる他に、printのコードを読んでいて気がつくのは、文字列に[<開始位置> to <終了位置>]を送ることでRubyのように部分文字列を取り出せる機能があることや、さらにfind first <文字コード>を送ってコードで指定した文字の位置を知ることが出来る機能があること、そして、これらの定義がstringには見当たらないことです。
コメントにもあるようにこれはALGOLライクな、つまり、通常の言語の条件分岐式とよく似た記法を、その意味するところは冒頭の if というアクション(オブジェクト)に対して、偽・非偽値(を返す式)、then、非偽時の処理、else、偽時の処理 といったもろもろの必要な情報をすべてメッセージとして送りつけることにより記述可能にするという実に驚きのアプローチです。
定義を細かく見てみましょう。
to は「クラス」もしくはインスタンス生成能を持たないクラスである「アクション」を定義するためのオブジェクト(これ自体もアクション)です。ここでは if というアクションを定義していて、続く exp はこのアクション内で用いられる一時変数の宣言です。その先に続く括弧内のがメソッド(つまり、if に送られてきたメッセージにどう対処するかを記述したコード)で次のような手続きが記述されています。