Почему С++ не удаляет место размещения, которое напрямую соответствует новому месту размещения, т.е. вызывает деструктор и вызывает соответствующий оператор удаления места размещения?
Например:
MyType *p = new(arena) MyType;
...
//current technique
p->~MyType();
operator delete(p, arena);
//proposed technique
delete(arena) p;