以下のような無名の名前空間から関数 timeを呼び出すようなコードが、
複数のcppファイルのなかに書いてあります。
このとき、gen が初期化されるタイミングや順序はどのように規定されているのでしょうか?

namespace {
 boost::mt19937 gen( static_cast<unsigned long>(time(0)) );
 boost::uniform_smallint<> dst( 1, 6 );
 boost::variate_generator<boost::mt19937&, boost::uniform_real<> > rand( gen, dst );
}

このコードは不適切と考えて良いのでしょうか?
(timeが複数のcppファイル内のgenに同じ時刻を返す場合があり、
 このため独立であってほしい乱数系列に相関が出てしまう可能性が高いため)