I've always been a big fan of far-futures expiry headers. First time visit on my site's homepage results in 40 HTTP requests, but a subsequent visit comes in at 1, with a response as snappy as you'd expect. This is great, very happy.
I've just learnt about dns-prefetch and preconnect though. I can see that they'd help (marginally) with a first-time load, but I assume the extra overhead is a bad thing on subsequent loads, since I'd be initiating some DNS lookups/SSL handshakes for domains which then don't even get used.
What's the best practice, or how have you tackled this?