Hi Edward,
I'm really not a fan of GeoIP detection - not because of cloaking - broadly speaking you're fine on that front.
That said I have seen sites that have clearly tripped some sort of cloaking filter and been penalised as a result; they were using GeoIP to deliver either US or UK content on the same page - rather than pushing to .com or .com/uk. But that's kind of off-topic 
The potential issue of redirecting people based on GeoIP is that if you don't make your whole site crawlable for the search bots, they'll typically only be able to access and therefore crawl / index the US content (Google mostly crawls from a US IP).
As you can well imagine - if only your US content is accessible to the bots, then that's the only content that ever stands a chance of ranking.
Just an aside - I also don't like it from a UX perspective; just because I'm in the US right now doesn't necessarily mean I'd like to see US content.
As such I prefer to use GeoIP detection, then let the user decide which content they'd like to view. Cheapflights handle this pretty well - if you visit cheapflights.com from the UK you get pushed to this international choice page - http://www.cheapflights.com/workers/profile-select.aspx?sref=CFUK&redirect=GeoIP&geoip=GB&cfref=CFUS&spt=Home&rp=/ - you can then decide which content you'd like to see. Plus the bots can crawl both versions easily.
Hope this helps
Hannah