This behavior is entirely as designed. When the monitors from a site are still available to the cluster, it is clearly not a whole-site failure and silently switching modes to allow data to exist in only one site would be unsafe.
If we want to change the design goals of stretch mode I guess we can but it certainly won't be for this release. I am inclined to close this as NOTABUG unless somebody has other thoughts?
Closing as intended behavior.
To clarify a little more, from an OSD perspective this is the same as taking down 2 of 3 OSDs when the min_size is set to 2. We need to keep data on both sites unless we decide that a site has fully failed and we're effectively chucking it out of the cluster, and if we see monitors from a site, we know it's not fully failed.