My objection to this technique has always been that by doing this, you essentially lose the people that have skills and can get jobs, and keep the people who don't have skills and can't get jobs, weakening your company.
I'm not sure on that point. It is the logical assumption, but the real world is more complicated. You are simply assuming that HR depts can universally identify & hire talent. There are many examples where highly qualified intelligent people can't find jobs, and underqualified people pick up jobs easily. Interviewing is a skill, resume-building is a skill, networking is a skill, even finding where to apply for a job is a skill. Being good at your job doesn't automatically mean you are good at any of those job-finding skills. It skews towards talented people having an easier time locating a job, but it is by no means a foregone conclusion. I'd wager that just about every interviewer here has found and hired "the perfect candidate" for a job, who was not, in fact, the best choice.
As another response indicated, companies have trouble evaluating their own employees, much less people that walk in off the street based on a few hours of conversations, and words written on a sheet of paper.