Why would Google offer a public DNS service?
Because it's a cheap and easy way to track attention today and in the future. (Almost) anything you do on the internet requires DNS queries. And when I say anything I don't mean just web browsing (HTTP). I mean email, ftp, and most other internet applications.
Google wants to know what is going on on the net. They want to know of new sites. The want to know sparks in attention regarding a specific domain or service. Google Analytics does that -to a certain extent.
But if they could track all (or most, or a large portion) of DNS requests, they would be able to know in (almost) real time where is the global attention focused. They would also be able to track changes in the internet topology: if I move my data center to a new ISP, they will know, since all the IPs of my servers would change. Or, if users start using BING, they will know. They will also know, if, for example, the usage pattern of api.paypal.com has changed in the last hours or days.
Oh, one more thing: a DNS service that big can be turned into a cache cow: Google, already have a service called Google AdSense for Domains, my guess is they will extend it to be used for misspelled domain names.
And, in case some new, exotic service appears, they will be able to spot it and estimate it's traffic...
Google public DNS service is a good move from their part. But I don't like it. They have started to scare me.