Yes, cloudfront gives you far better control over things like headers, routing for different paths, error pages, etc, than vanilla s3 http access does, and is almost certainly lower latency compared to s3 (assuming your files aren't GB-sized)
That is not correct. You can host a website from an S3 bucket without using CloudFront. Although of course, downloads will come directly from the S3 bucket and not from a CF edge location.