::operator new(size_t)を呼んだら、::operator delete(void*)を呼ばないとだめ
::operator new(size_t, a_t, b_t, c_t, ...)を呼んだら、::operator delete(void*, a_t, b_t, c_t, ...)を同じ引数で呼ばないとだめ
同じように::operator new(size_t, void*)を呼んだら、::operator delete(void*, void*)を呼ぶ(ほうが対称性があって行儀が良いけどどうせなかで何もしないからべつに書かなくてもいいよ)
そんで::new(a_t, b_t, c_t, ...)演算子は内部で::operator new(size_t, a_t, b_t, c_t, ...)を呼んでいるから対応する::operator delete(void*, a_t, b_t, c_t, ...)も呼ばないとだめ

グローバルに関してはこれでおk?