remove(Collection<T> collection, Map<String, Map<Key, Condition>> toRemove) invalidates the cache after talking to the DB. The other variants do it before.
mreutegg - this was added for OAK-2804 - do you recall whether there was a specific reason to do it like that?