I've been working as a software engineer for quite a few years now and I'm sure I'm a much better software engineer now then when I graduated. I now have years of solving varying real life problems with real-life constraints (budgets, deadlines, ...) using a big amount of different technologies, working with a lot of different people, ... However, I'm also pretty sure I'd have a better chance on the Google interview…
The thing to understand is that Google is more interested in not hiring potential bad hires than in hiring every good hire. Part of the reason the interview process works the way it does is to filter for people willing to put in some effort. If you want a job at Google, it's not a big deal to spend 3-5 hours a week for a few months getting sharp on the basics. If you're not willing to do that, then that's a good sign that you're not really invested, and may not be the best hire.
Google will totally lose some good hires this way of course. But their philosophy is explicitly that it's better to lose a good hire than make a bad hire. I think they're probably right.