>>587 だと

?- p(A,A = 尾崎,X). と
?- p(尾崎,true,X).
の実行結果は同じになりますね。もし遅延実行が可能になれば、
上はp/3の条件でq/3は遅延し、
下は遅延しません。当然のこととして、
q/3の第一引数と第三引数を遅延評価のトリガーとして利用するか
しないか、の記法上の差をつけられるようにしなくてはなりません。
そうしないとこの例のXは、どれもまだ束縛されていませんから、
全部遅延評価になってしまいます。