Imagine a call center web application with a soft phone that automatically detects when a call has started or the caller has hung up. The obvious approach to receiving these messages would be some kind of server push (a.k.a. Comet). It's pretty disastrous if we miss one of those server pushes.
iframes are for?)
My biggest worry about using a multi-page app is losing push messages when changing pages.
My biggest worry about using a single-page app is complexity.