上のコードを見て実験してみたんだけど

namespace A { int x = 1; }
using namespace A;
extern int x; // 問題の行
int x = 2;
int main() { std::cout << x << "\n"; }

"問題の行"がある時はあいまいエラー、
ないときは::xがA::xを隠蔽して正常動作。
"問題の行"の x はどっちの x を指してるんじゃろ?_?