Смаркастов переоценены это сахар. Контекст лямб может породить вложенность и это потом не прочитаешь. Функции расширения - да они очень круты, но мусорять namespace
>Мусорять namespace
Да вроде как-то получше чем замусоривать интерфейс. Но да, возможно приятнее было бы pipeline operator вместо это завести для большинства случаев (хотя продавать DSL наверное стало бы сложнее)
>Смарткасты переоценены
Ну т.е. паттерн матчинг > смарт касты > руками кастовать. Через пару лет может конечно джава обгонит в этом аспекте, да. Пока что не особо.
В целом по мне Котлин не прямо идеальный язык, но мне на нём приятнее писать, чем на Джаве (но если бы я был сильно завязан на тулинг, то ситуация возможно была иной)