Nutno podotknout, ze od tehle moznosti jsi vetsinou jenom jedno volani .stream() daleko...
Idealni to neni, ale zrovna tohle neni zas takova tragedie.
Určitě to jde vždycky nějak ojebat, ale proč? Upozorňuju, že se bavíme o základní funkcionalitě seznamů, žádné specializované, obskurní, okrajové operace.
Protože všechny tyto operace nejsou základní funkcionalitou jen seznamů, a dokonce ani nejsou omezeny na kolekce. Takže jsou součástí samostatného interface Stream, nikoliv Collection (nebo dokonce List).
Jistě, je otázkou proč vlastně Collection neimplementuje Stream (tj. je to "kompozice" místo "dědičnosti"), ale to už je hodně technikálie (a při rozhodování hrála velkou roli nejenom omezení jazyka, ale i zpětná kompatabilita).
Ideální to nikdy nebude, protože Java je prostě low-level jazyk a tohle roubování bude vždy skřípat. Nejlepší je prostě použít jiný jazyk nad JVM, ale do toho se moc lidem nechce...