I made this decision just this week, biggest reason being gzip compression. S3 will only store your file compressed or uncompressed, and you have to do server-side gzip detection to request the proper version, which isn't possible with CloudFront. [1]. You also have to gzip compress locally and upload both versions.
With MaxCDN, I just upload uncompressed, and it will gzip upon request certain text file types (xml, js, css, etc.) [2].
[1] http://blog.kenweiner.com/2009/08/serving-gzipped-javascript...