>>300や>>261が正しいとすると、
&aで配列全体のアドレス(ポインタ)になって、sizeof(&a)で、
int (*p)[2][3]=&a;sizeof(p);になって結局4になるのが
正しいように見えるけど?
&aと書いた時点で、それはもう配列じゃなくて配列へのポインタ
に変わってしまってるわけだから、>>300の1番目の規則は
適用できないはず。

配列全体のサイズを返してしまう処理系が間違ってるか、もしくは
本の記述が間違ってるとしか考えられない。