Это не обязательно тот случай, когда сущности в анонимном пространстве имен имеют внутреннюю связь; на самом деле они могут иметь внешнюю связь.
Поскольку у безымянного пространства имен есть имя, которое является уникальным для единицы перевода, в которой оно было скомпилировано, вы просто не можете ссылаться на объекты, объявленные в нем, за пределами этой единицы перевода, независимо от их связи.
Стандарт C ++ гласит (C ++ 03 7.3.1.1/note 82):
Хотя сущности в безымянном пространстве имен могут иметь внешнюю связь, они фактически квалифицируются по имени, уникальному для их единицы перевода, и поэтому никогда не могут быть видны из любой другой единицы перевода.