Еще одно использование для сбоя - принудительное отключение альтернатив при использовании предикатов с побочными эффектами:
writeall(X) :- member(A,X), write(A), fail.
writeall(_).
Некоторые люди могут не учитывать этот особенно хороший стиль программирования. :)