Bohužel to je normální (a myslím, že zcela správně).
(Téměř) libovonou funkci si můžeš volat v kombinacích jako Java/Scala, Java/Clojure, C#/F#... prostě tam, kde na snadnou integraci bylo při vývoji daných platforem myšleno. Ale ani třeba u C#/F# se člověk občas nevyhne "boiler-plate" kódu nebo nějakým omezením, protože v F# chce člověk spíš pracovat s neměnnými daty a v C# s "živými" měnitelnými objekty, z čehož v praxi plyne celkem dost starostí.