If 90% of people who walk in the door can't implement FizzBuzz, and Google wants to hire the top 10% of coders, then it would be expected for the interview process to reject 99% of interview candidates. A more typical hiring goal of "top 1% of coders" means a 99.9% rejection rate.
The phone screen process is supposed to reduce the number of low-quality candidates, but it's a fairly coarse filter, and very easy to game.
Google cares much more about what you've accomplished than about what number is on your transcript, what university's name is on your degree, or even whether you have a degree. If you feel your GPA is too low to be taken seriously, spend a few months coding and put it all online for browsing.
First of all, that logic only works if Google only wants the top 1% of people who apply to Google, and that Google is completely and absolutely incompetent at weeding out the bottom 99% through other screening methods.
Secondly, I doubt that Google has any kind of monopoly that allows them to determine what, exactly, the top 1% or even the top 10% is. A lot of people are fond of throwing these percentages around without even rudimentary data to support their notions of competence - which I think is probably fair to use as a data point for evidence of incompetence.
Thirdly, I could go on, but...
You're assuming that other levels of screening (resumes, phone screens) must not be working properly if there are so many bad interview candidates, but really they're working very well. A large company will receive millions of applications for any position, and needs to winnow that down to a few hundred interview candidates. How many nines of rejection do you expect out of a phone screen?
Is that so hard to accomplish without inviting someone in for an interview ? I cannot answer in the affirmative as I do not work in HR.