title: scala mutable Map withDefaultValue strange behaviour
body: <p>I have this example which uses a mutable <code>HashMap.withDefaultValue</code>. <code>withDefaultValues</code> provides a way to return a value even if the key does not exist, but it should not modify the collection. in any case, there is a conflicting behaviour, as <code>map.size</code> returns 0, and at the same time <code>map(key)</code> returns a value.</p>
  
  <p>how is this possible?</p>
  
  <pre><code>import scala.collection.mutable
  
  val map = mutable.HashMap[String, mutable.Map[Int, String]]()
            .withDefaultValue(mutable.HashMap[Int, String]())
  
  map("id1")(2) = "three"
  println(map.size)        // 0                   (expected)
  println(map)             // Map()               (expected)
  println(map("id1"))      // Map(2 -&gt; three)     (unexpected)
  println(map("id1")(2))   // three               (unexpected)
  </code></pre>