Re: песок в часах
Ну Пролог имеет некоторые императивные фичи вообще говоря.
Про особенности машины вывода надо знать конечно, но это не отменяет декларативности. Какие-то подсказки надо конечно давать компьютеру, тем не менее система остается декларативной. Не идеальной, но вполне рабочей (такие есть, по крайней мере).
Т.е. программирование разбивается на две части: формулировка цели + подсказки компьютеру как их лучше достигать.