I actually used to work for a Scala shop. The topic of Scala.js came up quite frequently.
OS issues are Flow-specific. All the other type system and languages I can think of for the web don’t share that issue (TypeScript, Elm, PureScript, Haste, etc).
“Build system, packer and dependencies are all handled by the same tool, Sbt, and Webjars are used for JS dependencies”. That’s actually a big drawback, not using the same tool as what will be needed for interop with the normal ecosystem and leveraging all the optimizations in the normal JS world. That’s an issue with most compile to js languages that have their own tool chain (eg: Elm, though Elm has a very “modern web aware” tool chain, minus interop). TypeScript/Flow/PureScript/etc do not have that problem.
If I didn’t care about interop, I’d do Elm. If I didn’t care about following “mainstream” and having a large community, I’d do PureScript.
Don’t get me wrong, not saying it’s bad by any mean. I love the idea. But it doesn’t solve my problems in ways that other solutions don’t already.
TypeScript is fixed lot of problems in 1.8, and is adding proper null handling in future versions. Flow’s windows compatibility issues won’t matter with Windows 10’s summer update that let’s you run Ubuntu userland. Elm is fantastic if I don’t mind fighting with interop. PureScript covers my bases if I really want to go all out.