Мне любопытно, почему вы хотите, чтобы m было var, а не val - если вы не пытаетесь переназначить карту на себя, кажется, что все работает нормально, как показано в ответе, и это больше соответствует философия scala - отдавать предпочтение неизменности, где это возможно:
scala> val m = Map("A" -> 1, "BB" -> 2, "CCC" -> 3)
m: scala.collection.immutable.Map[java.lang.String,Int] = Map((A,1), (BB,2), (CCC,3))
scala> val n = m filterKeys { s => s.length < 3 }
n: scala.collection.immutable.Map[java.lang.String,Int] = Map((A,1), (BB,2))
Я вижу, что вопрос довольно старый, возможно, что поведение, которое вы видите, отличается в Scala 2.8, учитывая основной рефакторинг классов коллекций.