それは程度の問題です。
関数型プログラミングに関数型言語を使用する利点は、飴と鞭です。ニンジンは、関数型言語には関数型の構文とセマンティクスがあり、関数型ライブラリが付属しているということです。スティックは、関数型言語が特定の標準に準拠することを強制できるということです。FP以外の言語でFPを実行すると、どちらも得られません。あなたは必然的に州に優しい標準ライブラリと戦うことになり、州を作らないように自分自身を取り締まらなければなりません。
CでOOを実行することとの類似性は良いものです。Cが正しい選択であり、OO構造も正しい選択であるような制約がある場合があります。GTKはその良い例です。OOPなしでUIツールキットを作成するのは非常に困難です。ただし、これは、通常はコンパイラーによって実行される作業を引き受けていることを意味します。ある言語では簡単なことの中には、構文的および意味的なサポートがない言語では困難または不可能になるものがあります。たとえば、多重継承をエミュレートするCプロジェクトを見たことがありません。手作業が多すぎます。
並列処理のためにOOコードに機能的なスタイルを採用した場合、多くの苦痛を伴わずに、求めているメリットを実現できる可能性は十分にあります。ただし、コードが純粋で、言語内でFPをサポートしていること、およびFPコンパイラーが最近実行できる優れた最適化についてのコンパイル時の保証を見逃すことになります。これはトレードオフであるため、これはケースバイケースで行う必要のある決定であり、あなただけが行うことができる決定です。
OOPがFPのスーパーセットであるかどうかについては、その概念に意味があるとは思いません。プログラムを表現するという点では、どちらも完全に機能します。FP言語でオブジェクト指向言語を実装できます。その逆も可能です。一方が問題のドメインに近い場合もあれば、もう一方が問題のあるドメインに近い場合もあります。とにかく、あなたの本当の質問は、FPが好きでなければならないかどうかだと思います。その答えは、いいえです。好きなものを使ってください。
Actorモデルもチェックすることを検討する必要があると思います。これは、より適切にOOであり、状態に依存しない(共有された状態に依存しない)だけでなく、スケーラビリティ/並列処理の利点も得られるためです。