Jan Burse writes:
"According to ISO core standard clause/2 is also only allowed for unknown and dynamic predicates, but SWI-Prolog allows it for static predicates as well. Which can be quite useful sometimes."
I will say!
(Sometimes the logic behind ISO standard decisions is hard to fathom, except that getting it right is hard, getting it right the first time is impossible.)