特殊形式の評価についてまとめると

if
条件節およびthen節またはelse節を評価する
and
falseが出てくるまで順番に評価を続け、それ以降は評価しない
or
trueが出てくるまで順番に評価を続け、それ以降は評価しない
amb
渡された要素のうち一つだけを評価する(呼び出されるごとに別の要素を評価する)

という感じか。きのうみんなが、仕様をよく知らないambよりもandとorで書きたがったのは、andやorだと評価が切れることをなんとなく意識してたからなのかも