> a と a() を別物として扱う
私の知る限りのコンパイラでは

#define a(x) b(x)
a(x) => b(x)
a(x,y) => エラー:引数の数がわない
(a)(x) => (a)(x) のまま

となっているのが規格で規定された動作なのか、ということでした。
>>http://www.jisc.go.jp/app/JPS/JPSO0020.html
を読んでみても、それらしいことが書いてないような気がするので処理系定義か未規定かもしれません。