I think that this is slightly off.  Based on discussions in SF, I understood that PUSH_PROMISE was sent while the stream remained open, but that was the only hard constraint.  Most importantly, Stephen Ludin mentioned that they were doing stream-based processing of resources, which means that discovering a need to push might happen after sending some DATA.  They might be able to hold the current DATA frame, but wouldn't want to hold an entire document.

There was only a soft constraint on promising a resource before it would be possible to learn of the pushed resource.Because that is not something that could be guaranteed.