A lot of AWS’s offerings are hard to use. But s3 really isn’t. There’s also firebase storage and backblaze b2 in this space. And they’re all easy to use standalone.
I suppose that's what this is https://elements.heroku.com/addons/bucketeer, but using S3 is really easy. And honestly I wouldn't trust most heroku addons are maintained outside of the most popular - postgres, redis, memcache.
Where do you store things like images, PDFs, binary files etc involved in your web apps? Most CRUD apps in my experience involve some kind of artefacts that need to be stored in some way.
You can store these on Heroku, but you have to remember that the volumes are volatile - so, you don't really know when given environment will restart and wipe all your temporary files that are not committed to the repo.
If your resources are required, then they should be committed. If you want persistent cache, there are options both inside and outside Heroku.
I think I agree with you though - it's weird for me to have code on Heroku, and then log in to AWS, to put stuff in S3 manually.
Heroku already provides a managed database service using Postgres, so you're fine for that.
It's if you want to store any kind of user uploaded or generated binary or large content - images, PDF reports, audio files, videos, JSON documents, code, logs - all common things you may want to manipulate in a web service.