>>140
23.3.1.2 map element access
T& operator[](const key_type& x);
1. Returns (*((insert(make_pair(x, T()))).first)).second.

ということで、まあ T() でコンストラクトされたsecondを持つpairがinsertされ
そのsecond( = T()の結果 )が返ることは規格で定義されてるね。

で、ここでTはdoubleだが、組み込み型に対する明示的な引数なしコンストラクトは
0が返る。
連想コンテナのinsert()は値が存在しているときは追加されず既存の値を返すが
ここでは空コンテナからなので追加されたものが返る。
といことで0は保証。