Я постиг смысл использовать перегрузку new, когда делал свои
визуальные классы. Экземпляров визуальных классов много, а работает
в данный момент времени всегда только один. Поэтому - выделил
статичный буфер памяти, чтобы влезал экземпляр максимального
размера (через union {}). Ну и перегрузил new в базовом визуальном
классе - чтобы возвращался всегда адрес буфера. В результате - когда надо активировать/дизактивировать какой-то экземпляр - вызываю new и delete, и все в ажуре - буфер корректно инициализируется, устанавливается нужная таблица виртуальных функций, вызываются конструкторы/диструкторы... в общем все как положено.