Defaults for map

Do we know which situations the resulting Map has the correct default and in which cases it has the incorrect default? In my very simple test using + to add to a Map the default is retained correctly.

val m1 = Map("a" -> 1).withDefaultValue(Set())
val m2 = m1 + ("b" -> 2)
m2("") // returns Set()

val m3 = Map("z"-> 3).withDefaultValue(Set())
val m4 = m3 ++ m2
m4("") // returns Set()

(m4 - "a")("") // returns Set()