Besides violating the requirement of the C++ standard, replacing
Could you please point us to the relevant section where this behavior
is enforced? We couldn't find it so far.
The Required behavior of the nothrow operator new reads:
This nothrow version of operator new returns a pointer obtained
as if acquired from the (possibly replaced) ordinary version...
The "as if" requirement implies that any observable effects of
"the (possibly replaced) ordinary version" must be preserved.
The repeated calls to the new handler are among such effects.
Martin