With Named Credentials, do I in fact have the ability to make callouts to external systems which do not require autentication? If that is the case, why should I ever use remote sites?
Remote Sites are also used for the AJAX Proxy, which lets you get around CORS (Cross-Origin Resource Sharing) security limitations in your browser. While you could use a Named Credential for this purpose (e.g. call a @RemoteAction method or webservice method), the AJAX Proxy can handle large (unlimited?) uploads and downloads, unlike the various limitations that plague the other APIs (1MB, 6MB, 12MB, 15MB are some of the limits you'll encounter using other mechanisms). So there's at least one legitimate case where you'd use a Remote Site. While I do agree that you should consider Named Credentials when possible, there are some practical times when it makes more sense to use a Remote Site and the AJAX Proxy instead.