The need for a referral to get human eyes on your resume is a different problem that isn't made better by making every application expensive for the applicant. Poor quality applicants have more time, you might say.
What if we imagined that companies charged a fee to apply instead of charging candidate time? Then these ghost positions would be obviously considered fraud. We don't normally pay applicants for their time, but isn't a ghost position requiring substantial time to apply also a fraud on the applicant?
All I'm saying is, by removing the payment in time, you remove the fraud.
Applicant spam is an orthogonal problem that has other solutions. Linked-in could limit applicants to one application every 30 minutes, max 16 per day. Employers can use keyword filtering as they already do.