Scala is definitely a rara avis, a serious engineering attempt by a PL academic. This doesn't happen often enough, though the effort involved makes it easy to understand why. Odersky should be applauded for his work, which is a contribution to both academia and industry.
What we did in Scala was try to be more complete and
orthogonal.
These are two of the most important contributions of PL academia: orthogonality and completeness. (I would say that soundness is the third.) Separating out designs into their atomic parts paves the way for better implementations and improved programmer understanding.
I believe one of the things we have to work on is better
tool support. Right now when you get a type error, we try
to give you a nice error message. Sometimes it spans
multiple lines to be able to explain more. We try to do a
good job, but I think we could do much better if we could
be more interactive.
Type inference research has spent a lot of time trying to infer types in more complicated settings (GADTs in Haskell, etc.). More time, I think, should be spent on understanding failure to infer types. The Damas-Milner inference algorithm for the Hindley-Milner type system is a good starting point -- few would argue that Ocaml and SML type errors are sufficient!