C言語だと単にconst int foo = 10; と書いたら外部リンケージになるため
複数の箇所からインクルードされるヘッダファイルbar.hにそれを書く場合は
extern const int foo;
とせねばリンカーか何かに起こられる。(もちろん=10は.c の方に const int foo = 10; と定義を書かねばならない
従って、C++とから
extern "C" {
#inclue "bar.h"
}
としたときにbar.hにexternの無いconst int宣言が含まれることは事実上無いからでextern "C" の曖昧さの問題は事実上無いハズ……

それよかむしろ関数の宣言のexternを省略したやつをextern "C" { } で囲った場合どうーなちゃうの?!
と言うのが疑問ではある(Visual Studioだと経験上問題なさげ……