In AWS a VPC subnet can only reside in one availability zone. I'm curious what's the reason behind this restriction.
I don't know how AWS implements VPC under the hood. But usually VPC implementation is based on overlay network, such as VXLAN. Take VXLAN as an example, technically two endpoints in a virtual subnet can communicate as long as the two physical hosts hosting the endpoints can communicate. It shouldn't matter whether these two hosts are in an availability zone or not.
So I'm wondering what's the reason for the limitation. Is it due to performance or some other network limitations?