Actually using Google's nameservers are really fast compared to a default Bind/PowerDNS setup.
I have a PowerDNS setup on localhost that was a lot slower than Google's servers. That's because by default it recurses to the root servers.
I found that the fastest setup in my case was to use PowerDNS and have it recurse via bt.com servers (this is in London). BT is a big commercial provider so what I need is often hot in their cache, the same goes for Google.
I run a dnscache (djbdns) local DNS cache on my gateway and it caches most of the DNS entries I need on a daily basis so getting results back is much faster than getting them from google.
With a local DNS cache on my network for the same domain name I get replies within 30 or so milliseconds, with Google's DNS servers there is at least another 60 ms or so required for the round trip, making most of the queries take 90 ms. Now that may not seem like a lot, and most likely I will spend more time waiting on a website to load, but in the long run it does make a difference.
Try a server which is only caching instead -- not the normal standalone resolution. For example dnsmasq caches entries locally, but you can select the "upstream" servers yourself, so that you do either no internet queries or only one. In that case asking dnsmasq, which is configured to use 3 google dns servers, is never slower than configuring them in resolv.conf. You never hit the root servers yourself.
Actually, that may be true, but recently, with my website http://code.getnightingale.org, I had SERIOUS troubles accessing my DNS once (the TTL was set very low, and even after fixing it, it didn't work in Google DNS). Turns out, it was because of Google's nameservers. Moment I changed, it was fine (must be a bug in their setup).
Anyway, this isn't much of an improvement honestly..
Even the man page is better: http://linux.die.net/man/5/resolv.conf
"Optimised" resolv.conf has one line - 127.0.0.1 and the host runs a local cache (dnsmasq / bind / djbdns / ...)