for (element in this) if (predicate(element)) destination.add(element)
return destination

когда создаётся цепь фильтров, в каждом звене конструируется новый массив и потом даётся дальше?
Да, сейчас это реализовано именно таким образом, без потоков. Насколько я понимаю, так было сделано для обратной совместимости с Java6 (Android же)

Есть вариант с asSequence, если вас это не устраивает. Впрочем, он особо не отличается от Java Stream API.

минимизация пайплайна (из функций map, foreach, filter, и т.п.) и применение его последовательно или чуть паралельно к каждому значению без нескольких проходов, то есть нечто в направлении генераторов можно сделать в этом котлине?
так в котлине генераторы есть же.
ну или почти.
через сопрограммы и в таком духе
Там есть корутины, с помощью которых, в том числе, реализованы генераторы

Конкретно это и в джаве работает. Корутины для этого не нужны.

Не отвечу за котлин на 100%, но почти уверен что да.

предложили идеально сработанный язык

По доллару бы за каждый идеал. По два за идеал от рождения.

Это не сборная солянка из идей, а по-настоящему грамотно сделанный язык. В нем собран минимальный набор самых мощных фич, которые в сумме дают вам потрясающие возможности.

Солянка и есть набор из разных мяс.

В общем опять оценка преисполненная поверхностных суждений с базой на эмоциональном восприятии.
Не бывает идеальных языков. Всегда очень много нюансов, когда приходится жертвовать одним против другого. В одних ситуациях это плюс, в других минус. [mode=troll] Даже разработчики go отказались от слова «идеальный» и стали слушать (ну как смогли) фидбэк пользователей. [/mode]
Стоит заметить, что определение «идеальный» — полностью на совести автора статьи. Сами ребята из JetBrains его так не называют(я, по крайней мере не помню такого) и работа с фидбеком у них поставлена достаточно хорошо ;)
Так мой коммент и не про язык, а про статью как раз.
Можете без труда определить свой класс коллекций, реализующий Iterable, и язык за вас добавит к нему эти методы для обработки коллекций. Даже String реализует его. Вот почему можно задействовать все методы обработки коллекций и со String:

А вот это совсем не правда. String в Kotlin не реализует интерфейс Iterable и функции расширения, такие как map, filter и т.д. для него совершенно отдельные, привязанные либо к самому String, либо к суперклассу CharSequence (который тоже не реализует Iterable кстати)
Только полноправные пользователи могут оставлять комментарии.
Войдите, пожалуйста.