Como dijeron mas Arriba , CDN no es lo mismo que Cache . Existen servicios como Cloudflare , que tienen sistema de caching aparte de su CDN (así como optimizaciones) . Pero un CDN puro, no reemplaza un plugin de cache (nisiquiera Cloudflare).
En mi opinion al igual que mas arriba, el Mejor es W3 Total Cache, aunque hay que saber configurarlo.
La razon de que es necesario es simplemente por como funciona el sistema de cache de WordPress. El mismo consiste (a grandes rasgos) en crear una version en html de la pagina en su primera visita. Para luego en posteriores (hasta que termine su validez o vacíes cache) , en vez de tener que procesar todo el PHP para generar la pagina, simplemente sirve la pagina que armo previamente y tiene guardada (cacheada) desde ese momento.
Es por eso que los plugins de cache reducen drasticamente el uso de recursos y mejoran la velocidad de carga.
Lo ideal es combinar un CDN y un Plugin de cache. El CDN para reducir las peticiones al servidor y mejorar la velocidad del carga al cargar el contenido estatico desde servidores cercanos al usuario. Y el plugin de cache para reducir la cantidad de PHP, Consultas a la Base de datos,etc en cada visita
W3 Total Cache tiene extensiones tanto para Cloudflare como Max CDN y similares