Although it would generally cost nothing for a compiler to interpret a placement new as "importing" whatever bit patterns happen to be in the storage before an object is constructed, there are some difficult-to-characterize corner cases where doing so may significantly complicate or impede optimization without offering any real benefit. Thus, the Standard allows compilers to import the bit patterns in cases where it would cost nothing or would benefit their customers, without requiring them to do so in cases that would be expensive without benefiting their customers.
While it would be helpful if there were a form of placement new syntax that would explicitly specify that bit patterns should be imported, such a thing wasn't seen as necessary when the Standard was written. In most cases where importing bit patterns would be useful, it would cost nothing and compilers would do it whether mandated or not. In cases where it would be useless, it wouldn't matter whether compilers supported the behavior. Situations where such a syntax would result in compilers doing something useful that they wouldn't otherwise do were sufficiently rare that there was no need to accommodate them.
Obviously, compiler philosophy has changed in the decades since placement new was first standardized, and situations where bitwise import would be useful but compilers wouldn't reliably support it are far more commonplace. A sensible resolution would be to add two new syntactic forms--one which would require that a compiler import the bit pattern and another which would explicitly state that the bit pattern didn't matter--on the basis that the programmer will likely know more about whether the bit patterns matter than a compiler writer possibly could. So far, however, that hasn't happened yet, leaving constructs like yours in the awkward state of being usefully supported by some implementations but not others, without any nice way of identifying implementations that support them.