This was the real issue from the previous bug that I closed as invalid. The problem is that the where clause is not evaluated unless there is a RHS to evaluate against. When the RHS does not exist, that is, one has not been seen, there is no filtering applied and so any restrictions pertaining to the LHS are not respected.
The following rule exhibits the problem:
C :- B unless after A where B.begin < 30