It doesn't take too much away from your point, but people do "push" data outside the context of an attack. IP is not a request/response protocol like HTTP.
Agreed, it's technically possible. In practice it almost never happens. And even when it does it might TECHNICALLY be a push but from a very high level perspective it might still be a pull.
As an example I use a website (like Facebook or something) which does live auto-updating. Under the hood it's something like WebSockets or SocketIO and the server does send datagrams to me without me specifically requesting those individual data packets. I couldn't request them, I didn't even know about them until they arrived!
But while that technically is "push" from a high level it's still "pull" in that Facebook (or whoever) doesn't just start sending them to me for giggles. It doesn't start happening until I visit their site, and it stops happening fairly shortly after I navigate away from it. Their computers don't unilaterally send packets to me. I request them by continuing to execute the javascript that their servers sent to me when I loaded the page. Once I stop executing it, the connection is closed and the messages stop.