So unfortunately, cloudflare would be your only option.
Also, google's pagespeed service (in beta) is also an option. Also free, so that's good :D
EDIT: Okay, wrong again. Appears that cloudfront will serve dynamically gzipped content if your origin server responds with gzipped content to the Accept-Encoding header. So origin server = S3 is not a good idea, but origin through your own web server should work fine.