Sure, nobody is deceived by the reality of the execution engine. But it's hard not to see a pure statement that is fast in one mode but slow in a different mode, determined entirely by the logically arbitrary order of two clauses, and not wish that the computer could just figure out those details itself.
I just replied to https://news.ycombinator.com/item?id=35625640 and I am inclined to believe that someone is deceived…
You really don’t have to go far in Prolog before you have to write a meta interpreter and think about search strategies.
I think this is in plain sight from the beginning.