つまり
int * p = new int[n];
だと、要素数がどこにも記録されない、と規格のどこかに書いてあるのか?

だから
delete p[] ではなく delete p をしても見て意義動作ではないと。

ふーん。