I think the real issue is that we should be spending more effort on designing systems that don't require outages to implement patches. Even if we reduced outages in most instances to the time required to hand over to a new instance almost all these issues would be history.
I worked on the core backend of an Internet Banking system and it was possible for us to apply code changes and db schema changes without an outage, so it is technically possible.