It seems that new specification for [array.zero] (as of 0439353) will break ABI for MSVC STL. The new specification requires triviality but MSVC STL's implementation strategy sometime fails to provide, despite that triviality was discussed before. Perhaps we should only require that for each desired property which array<T, 1> doesn't have, it is unspecified (or implementation-defined?) whether array<T, 0> has.
Also, MSVC STL tends to avoid terminate wherever possible, see also microsoft/STL#5560. Would it be better to say "implementation-defined terminating function" instead of std::terminate?