The docstring of filterv prohibits using a filter predicate that has side effects:
Returns a vector of the items in coll for which (pred item) returns logical true. pred must be free of side-effects.
The last statement seems unmotivated. filterv is based on reduce, and therefore eager like into or mapv. There is no obvious reason to forbid ('must'!) side effects in the predicate.
This docstring has caused confusion in the past. Examples:
The docstring was originally copied verbatim from lazy filter (CLJ-847, commit ec59eba), which could explain why the sentence is there in the first place.
Delete the sentence 'pred must be free of side-effects.' in the docstring.