It comes down to this: filtering by OSS contributions gives you many false negatives (as the OP has complained) but virtually zero false positives. In hiring, a false negative is a bummer, but a false positive is disastrous. It would be irresponsible of me as an interviewer not to take this into account.
If it someone's pissed because they fall into the false negative bucket, that's rough, but I'm the one calling the shots and taking the risks.
(1) The person can apparently code when he's allowed to pick what he wants to work on and doesn't have any real pressure, and
(2) He has time to work on open source.
Most companies need people who can code well under pressure and when they have to work on something they don't necessarily want to work on.
By screening by OSS contributions you will indeed eliminate one kind of false positive--they people who can't code at all. Other kinds of false positives, such as people who can't work well except on self-selected projects, will get in.
And from the developer perspective, just the fact that it helps you avoid idiotic CS101 tests over the phone at every interview is enough to make it worth.
How isn't that a disaster?
If a false negative means you have no awesome candidates to choose from, that's a problem.
If a false negative means you have two awesome candidates to choose from instead of three, that's irritating but hardly a disaster.