Why would you backtrack when doing bit-blitting?
Part of writing efficient Prolog is doing things to avoid such backtracking (by adding cuts or rearranging code).
Bit-blitting is just an example I made up for "large-scale manipulation of array data". There are such cases where backtracking would likely make more sense, though I'm not thinking of an obvious one right now.
The exception would be Turbo Prolog, but it was a rather restrictive subset of the language. Fast as hell, though.