Dumping everything into an S3 bucket may be perfectly fine and even efficient for some projects. I personally don't see myself wanting to use S3 buckets for transmitting messages between multiple different systems with different purposes.
If you have a lot of different services producing data that multiple services will consume, then a pub/sub system can simplify things. Some systems, like Kafka, also have added redundancy/scaling benefits.