Vale ovviamente per tutto. Con le CDN hai una certa probabilità (secondo me troppo bassa per crederci sul serio) che le risorse che richiedi siano già cachate dall'utente. Ma se non lo sono, una richiesta http te la devi fare comunque.
Per i DNS: ovviamente è più probabile che hai già l'indirizzo del CDN nella cache del browser.
La verità sta nel fatto che bisogna prima occuparsi delle cose macroscopiche, e poi dei peli nell'uovo :-)
Tradotto: non mi preoccuperei dei dns se poi mi metti 300kb di javascript bloccante nell'head :-)
Che poi ripeto, può essere una scelta legittima farla, purché sia fatta con cognizione di causa. Per esempio in una area admin, non ha senso preoccuparsi di queste cose (secondo me). O in un gioco con decine di librerie da caricare, ha forse senso fare un preloading con una animazione o frase di intrattenimento, piuttosto che destreggiarsi in chiamate asincrone qua e la a rischio di gestirsele male.
edit: Ah e poi una nota.
Ci sono strumenti che ti compattano il codice javascript (cosa che ha senso fare sia nei file esterni, sia [e soprattutto] negli include nell'html.
Guardati uglify (io lo uso con Grunt)