Do CNAME records result in a second DNS lookup?
The 2 records are returned together in the same request. You can find that out via the following command
dig +trace www.foo.com
For example my domain photoblog.com has a cname for www so the last 2 requests from photoblog's name server to me look like
photoblog.com. 172800 IN NS ns1.photoblog.com.
photoblog.com. 172800 IN NS ns2.photoblog.com.
;; Received 103 bytes from 192.43.172.30#53(i.gtld-servers.net) in 196 ms
www.photoblog.com. 600 IN CNAME photoblog.com.
photoblog.com. 600 IN A 74.52.128.18
photoblog.com. 60 IN NS ns2.photoblog.com.
photoblog.com. 60 IN NS ns1.photoblog.com.
;; Received 133 bytes from 74.52.128.18#53(ns2.photoblog.com) in 59 ms
As you can see the request asks ns1/ns2 what is the ip for www.photoblog.com and it returns well it's a cname to photoblog.com and here is the ip for that A record.