>>13
難しく考えすぎなんだよ。

結合は「コンパイラ(≠リンカ)による依存性、一意性の解決」とでも思えばいい。
同じ名前のオブジェクトが出現したときに「最終的にどれを呼べばいいのか?」をコンパイラが判断すること。
この段階でコンパイラはそれぞれのオブジェクトに「依存解決済みの一意の名前付け」をする。
もちろん最終的に一意性が確保できなければエラーを吐く。
リンカがそれらを相対アドレスに置き換えるのはその後の話だ。

externが付いてない限り、またスコープ内で重複しない限り、ブロックスコープにあるオブジェクトは一意だろ?
だから結合という操作は不要なんだよ。