No que diz respeito às práticas recomendadas, a abordagem comum para otimizar o carregamento da página é agrupar todos os seus recursos de JS, devido ao número restrito de conexões para um único domínio, como Jarrod mencionou, e definir um cabeçalho de vencimento futuro muito distante na resposta.
O que as CDNs trazem para essa mistura, especialmente as populares, como Jarrod também apontou, é que o usuário já teria acessado a URL anteriormente e pode recuperar o recurso JS imediatamente do cache de seu cliente, sem precisar estabelecer uma conexão.
Nesse sentido, se todos nós usamos CDNs e empregamos práticas recomendadas, podemos evitar que o usuário recupere ~ 10 a 50 KB adicionais quando acessar inicialmente nossos URLs e permitir que eles carreguem suas páginas mais rapidamente.
Eu recomendo fortemente o uso de CDNs por dois motivos: os contras mencionados por Jarrod são verdadeiros, mas completamente insignificantes e se você já estiver agrupando suas fontes em um único documento, forçará todos a recuperar, digamos, a parte estática do jQuery do o documento (~ 33 KB) toda vez que você atualizar um dos recursos agrupados.
Eu não sei o quão importante isso soa para você, mas com grandes bases de usuários, isso leva a um corte significativo na largura de banda e economias significativas, dos quais podemos desviar para assuntos mais prementes, como streaming de pornografia e compra de cervejas.