This happens because Clara allows multiple equal facts to exist in the session, and tracks the number of them inserted. So after something like (-> session (insert a) (insert a) fire-rules (retract a) you’d still have on “a” in the session.
The same applies for facts created as a result of rules firing.
If this isn’t desirable in your use-case the distinct accumulator can be used.