I might be wrong but Jan Burse is probably talking about the old vs. the new implementation of foreach/2. See this thread: New hashtable library
From what I understand, foreach/2 almost builds the conjunction of the goals in the second argument; but actually, it would build a conjunction of goals where the variables shared between goals were actually copies (so not the same variable!). This deficiency no longer exists since July 26 this year (see the last message in the thread I shared).