I was rebuilding this PR against current master, in a new branch, and reviewed this proposal.

The complexity here is that if someone is calling `add_filters` regularly with dynamic argument sets, then setting `@strainer` to nil could result in excessive growth of the class cache. The balance I originally target, was such that for "boot time" configuration, the system avoids extend and is fast, and for runtime modification, it is memory efficient, but slower.

It's still valid to make the change you suggest, it's just worthwhile being aware of this trade-off. I would generally advise against runtime use of this method anyway.