I am having trouble understanding what you are really asking in your question. You give an example of a simple event bus, which is actually just Observable
with a different name, and then you say:
For these reasons, I believe that for most software, an Observer pattern is better than an event bus. What do you think of the event bus, does that make any good sense for a typical application?
.. but, given your example, they are the same. It makes you wonder if you have ever used something like the Enterprise Service Bus. At a basic level, an ESB logically does the same thing as an observer pattern, but commercial products add a lot more. It's like a bus on steroids. They are complex software products and offer:
Delivery Message
Generate events by listening to various endpoints. The endpoint can be a listener (e.g., an HTTP server), a messaging system (e.g., JMS), a database, or just about anything you want.
Message routing
Take your event and send it to one / many endpoints. Routing can be pretty smart, a bus can route a message depending on the type of message, message content, or any other criteria. Routing can be intelligent and dynamic.
Message transformation
Converts your message to another format, it can be as simple as from XML to JSON or from a row in a database table to an HTTP request. Conversion can occur in the data itself, for example, in replacement date formats.
Data enrichment
Adds or modifies data in your message by invoking services along the way. For example, if the message contains a zip code, the bus can use the zip code search service to add it to the address data.
.. and many, many more. When you begin to learn the details, you can really begin to understand why people use these things.