2つの無名名前空間内で同じ名前の構造体を定義すると、重複してるって怒られる。そういう仕様ですか?

//file1.cpp
namespace { struct A{}; };

// file2.cpp
#include "file1.cpp
namespace { struct A{}; };

// ビルド VC++2010EE
error C2011: '`anonymous-namespace'::A' : 'struct' 型の再定義

でも、名前空間をBとCに分けると、当然ながらOKに。なんか納得出来ないんだけど。