While module splitting was introduced by sjs 1.3.0 [1], the apps I have linked do not use it just yet (well, technically, the games page uses it but it is a single page loading everything, so, no real benefit from it).
[1]: http://www.scala-js.org/news/2020/10/16/announcing-scalajs-1...
Yes, it does. This is what Dynamic Imports are for. See https://www.scala-js.org/doc/project/module.html#dynamic-imp...
This is the kind of optimization you can get from compilers like this, esp. leveraging the closure compiler