It is common practice for a web application to rely on S3 bucket for static contents. S3 needs a network call same as application server call. Why not to depend on web server instead? 🤔
You can certainly use CloudFront to serve content from your own origin, if you want to.
The advantages of serving from S3 are its high availability, high durability, high scale, ease of use, integration with other AWS services (like Lambda), and low cost. Offloading static assets from your web servers to S3 also likely reduces the size and cost of your web server fleet.