Короче говоря, с точки зрения компиляторщика все языки примерно одинаковы, особенно, разумеется, если смотреть на внутренности их компиляторов. Подозрения вызывают только тоталитарные поползновения в области языкотворчества ("перепиши на Rust!") и компиляторов ("а чего LLVM не взял?"). Чем больше компиляторов и языков, тем больше работы.
Нет. Компиляторы для языков с JIT и GC (Java, JS, .Net) сильно отличаются по устройству от AOT (C, C++, Rust, Swift). Была, кстати, куча попыток использовать LLVM/GCC для первой группы (как пример, Go, Haskell, Java) и ничем хорошим это не заканчивалось: GHC перешёл сначала с GCC на LLVM, а потом на собственный backend. llgo выпилили, gccgo тоже дальше хобби-проекта Ian Lance Taylor-а не пошёл. Java выпили из GCC пару лет назад.