я второй вопрос задавала. я и думала, что невозможно. но непонятно почему.
Самый очевидный пример я привёл: invokedynamic - его в Java просто нет вообще.
Ну и goto тоже. Поскольку в Java его нет, в JVM можно организовать такую структуру джампов, которая ни в какой валидный Java-код обратно не отображается.
Видимо, есть ещё куча каких-то мелких неочевидных моментов в Scala и Kotlin, которые мешают обратной трансляции в Java.