Werner Vogels, 2004: "I am not advocating that you should hold Atom/API work to re-evaluate the architecture, not that you re-architect the format and APIs to focus on this. But it would be good if people working on the format could keep in mind that there may be alternative delivery mechanisms of the feed data in the future."
The single thing Atom had to do to meet the need? Here it is:
start = atomFeed | atomEntry
The top level element of an Atom document can be a feed or an entry. That's it. The simplest thing that could possibly work.
Take a look at this XMPP iq message. Notice it contains an entry, not a feed. Feeds are an artefact of web architecture, alternate (push) mechanisms only need entries.