Why is _PassthroughScorer an object? A simple callable would do the trick and be simpler.

I wonder if you could not put "scorer=None" as a default argument to your _score function, and use it here.

I am trying to reduce the entropy of the code base: recent PRs have multiplied the number of helper functions and objects.