The GWT approach has its own downsides as well.
B) What are the downsides?
For the languages that target wasm instead, there are different debugging stories. Kotlin's is very good, Rust's is pretty immature.
Source maps work great for TS because it is just "JavaScript with types" at this point.