Whenever you are reading a standard, first look at its scope (domaine d'application, область применения, Anwendungsbereich). Thus whether or not the standard applies to what you want to know. And in 13211-1:1995, 1 Scope there is a note:
NOTE - This part of ISO/IEC 13211 does not specify:
a) the size or complexity of Prolog text that will exceed the
capacity of any specific data processing system or language
processor, or the actions to be taken when the corresponding
limits are exceeded;
b) the minimal requirements of a data processing system
that is capable of supporting an implementation of a Prolog
processor;
...
Strictly speaking, this is only a note. But if you leaf through the standard, you will realize that there are no such requirements. For a similar situation see also this answer.
Further, resource errors (7.12.2 h) and system errors may occur at "any stage of execution".
Historically, the early implementations of DEC10 did not contain last call optimizations and a lot of effort was invested by programmers to either use failure driven loops or enable logarithmic stack usage.
In your example rep
, a conforming system may run out of space. And that overflow may be signaled with a resource error, but even that is not required since the system might bail out with a system error. What is more irritating to me is the following program
rep2 :- rep2.
rep2.
Even this program may run infinitely without ever running out of space! And this although nobody cuts away the extra choice point.
In summary, recall that conformance with a standard is just a precondition for a working system.