When should an application be copied to a new region?
First a primer on regions and availability zones 

Regions are physical places where the AWS resources are located.  As such different regions may offer different resources.  This is also important for latency-sensitive operations and data sovereignty laws.  Having an EC2 instance in the us-east-1 region means all of my instance resources are in that region of the United States.

Availability Zones, while in the same geographic area, may be backed by one or multiple data centers.  However, if you have an EC2 instance running in two availability zones, they will run in separate data centers.  So an EC2 instance in us-east-1a and us-east-1b will be in two separate data centers.

Imagine you have a mission critical application that needs high availability.  By setting up a load balancer (controlled by the region and not the availability zone) you can help scale your application across multiple availability zones and redirect traffic if something happens to an availability zone.  This helps create a highly available infrastructure.

To answer your three examples:


Computational availability is not really a factor.  You could always throw a larger instance (or multiple instances in the same availability zone) to decrease load.
While you could use multiple zones for rolling out upgrades, this can also be done within the same availability zone.
Your third point here is the main draw to the availability zones.  If a data center catches on fire, floods, gets hit by a meteor and all your EC2 instances are tied to that center then you would be unable to access whatever application you had running.