> One reason not mentioned already is that HR does not have the technical expertise to understand if someone is a good candidate
This may be true, but it's often doubly true for recruiters. The best recruiters I've spoken to admit that they know very little about the subject.
No matter what, the candidate always has to be judged by someone who does have the required expertise, which means someone who's not HR or a recruiter.
I'm no fan of recruiters, but the good news here is that recruiters who have the exclusive right to offer candidates to a company, tend to be the better ones: not too expensive, not getting in the way too much, contracts without non-compete clause (because they have this exclusive deal anyway), and they really try to add some real value, because otherwise they might lose this exclusivity deal.
The real problem are the recruiters who try to get in front of those exclusive recruiters: they take the job descriptions from the exclusive recruiters and spread those all over the place, including in our mailbox. They have a much higher rate, often taking $10 off our hourly rate (for freelancers at least), insist on non-compete clauses that limit your job opportunities later, and try to make as much money with as little work as possible by simply shoveling piles of CVs towards anyone who might be looking. And they get in the way of communication between candidate and company, though that effect is unintentional.