To be completely general here, this should be a isDistributive check (maybe named slightly differently -- isCommutativelyDistributive?).  The idea is that it expresses that summing the inputs doesn't affect the summing of the outputs when the monoid is commutative.  NoOp producers satisfy this trivially, but so do FlatMapKeys producers.  And if we found a (good enough) way to implement a DistributiveFlatMapValues producer, that would work too.

As a side benefit, perhaps we could argue that Summer nodes themselves are distributive?  Then we could get rid of the != s part.