kotlin тоже возвращает 3 но только при этом еще и говорит, что return 1 и return 2 - unreachable code так что походу не возвращает он там сначала 1 и 2 - он их игнорит, ну вернее оптимизатор игнорит
у тебя все же вопросы довольно спецефичные, ели не сталкивался, не разбирал конкретную тему - то сложно ответить чисто наугад только, с тем же StackTrace а все знать точно уж не выйдет ))