I thought the problem was related to subtyping? AFAIK the reason Scala doesn't have HM inference is because something about the existence (nominal?) subtyping makes it impossible/super hard to infer types that may seem obvious/easy - even with monomorphic functions.
Ex.
def fact(n: Int) = if (n == 0) 1 else n * fact(n - 1)
will fail to compile and tell you that you need to provide a return type.