You state that the bulk versions of the add and insert are better, but how does one deal with a way of inserting a lot of facts that may contain some that are already inserted ?
Can the API's be extended that do the equivalent of bool noFailIfDuplicate=true
/// <summary>Inserts new facts to the rules engine memory.</summary>
/// <remarks>Bulk session operations are more performant than individual operations on a set of facts.</remarks>
/// <param name="facts">Facts to insert.</param>
/// <param name="noFail">Do not throw exception if a fact is already in the Session</param>
void InsertAll(IEnumerable<object> facts, bool noFail=true);