cuts and non-cuts are confusing: true! :-)
->, *->, !, once(), \+, atom, integer, bagof, ... and many others are all non-logical! Logical alternatives are possible, but less performant. I'd love to have all such constructs prefixed with "dangerous_" or something! But that would break compatibility.