Martin here at Arena has just been looking into how Google go about blocking the keyword in the referrer. We did a search for the term “seo” at https://www.google.com whilst logged into a Google Account. With Google Instant turned on it created the following URL…
https://www.google.com/search?sclient=psy-ab&hl=en&site=&source=hp&q=seo&btnK=Google+Search
Wikipedia was top of the results, so we had a look at the html element containing the result, which looked like this…

You’ll see a bit a of JavaScript there bound to the ‘onmousedown’ event, which calls a function called ‘rwt(…)’. Here is the function declaration…

There is a lot going on in there, but essentially it redirects the browser to a new URL with the ‘q=’ parameter wiped (as indicated by the wonderful red arrow above), which then redirects to the desired page you clicked on in the search result (which is passed via the ‘url=’ parameter). So, from the search result itself (Wikipedia in this case), the referrer becomes…
http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CGoQFjAA&
url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSearch_engine_optimization&ei=GpqeTqSzJsuFhQettaBN&
usg=AFQjCNHfIpCo_Ap336oSDlmNqh1STSriIg
Meaning the ‘q=’ parameter exists, but is empty! This is very bad news for our natural search scripts (and analytics packages full-stop!), the only thing we’ll be able to tell from the referrer is that they came from Google, any brand/generic keyword logic goes out of the window. The only thing we could do is isolate this traffic and track it differently, as we know it’ll be coming from ‘www.google.com/url…’ instead of ‘www.google.com/search…’.