For the sake of argument, there's really nothing wrong with combining map/reduce with side-effects, especially for things like counters were the alternative of threading the variables everywhere can end up being much more complex very quickly.
It is something of a nit-picky argument to be sure, but it is a good mental habit to have.
Edit: I think being strict with the semantic building blocks is a good mental habit, not necessarily making nit-picky arguments.
You can argue that anything is nit-picky, under the guise of subverting good engineering in exchange for getting to be lazy.