If you’re using S3+CloudFront, it’s not dirt cheap.
Traffic at AWS is so expensive, at any scale it’s cheaper to roll your own. Significantly.
(For traffic in the EU, that is, in other regions traffic tends to be a lot more expensive)
Also, if there is an issue with either of these it's far easier for me to justify downtime to a client by saying "Amazon us-east is down, here's Amazon's status page" then trying to explain who OVH is.
S3 + Cloudfront + ad hoc Lambdas is a far far easier cost benefit ratio when it comes out what my time is worth. To each their own :)
In a previous startup I was CTO and founder for, I used a gentoo and managed everything possible by myself. This was not especially costly in time because I was already used to it and efficient, and we managed that way to stay for 3 years with 70€/mo in infrastructure cost. This has its advantages too :)
For example, I use a CDN for some of my assets, except for users in the EU.
It turns out, for users in the EU I can get faster speeds with my own systems, for almost two orders of magnitude difference in traffic pricing.
If a large amount of your users happen to be in such a region, it might even make sense to use no CDN at all.