Javaでのクロージャ、関数型の存在意義

オブジェクト指向はオブジェクトの雛型であるクラスを再利用するという考え方が根底にある。
クロージャ、関数型は、処理を再利用する(ポータブルにする)という考え方がベースに
あると考えられる。Javaで関数型変数やクロージャが使えるようになるのは結構だが、クラスベース
オブジェクト指向言語としてそれらはどのように解釈されるのかをはっきりさせないと、
単に流行に乗って節操無く機能を追加するような印象があって良くないと思う。
C#はそこのところはどうなっているかは知らない。デリゲートってやつ?
Smalltalkにはそういうのはあるのだろうか?
なんかうまい解釈ができるといいが。