I'm not talking about allocators or global new/delete, I'm talking about operator new and delete inside of classes, which are arguably almost never used.
I think it's much better to define a pool class and just use methods or static functions to get instances instead of overloading new/delete per class - it's much much more clearer and explicit; having your objects not going through the global new and delete mechanisms is a big gotcha.