A mi me pasa al revés, ahora mismo estoy estudiando programación funcional y pienso que debe existir un balance entre OO y FP si el lenguaje lo permite, yo estoy usando Javascript al 100% actualmente.
Hay lenguajes donde no existe OO y son puramente funcionales, ejemplo: Haskell.
Y aún así se pueden alcanzar igual o mejores abstracciones que usando sólo OO, al final un objeto con propiedades no es más que una estructura de datos, y los métodos sólo son funciones atadas a un scope (ámbito o contexto), todo encapsulado.
Es decir, en OO se establece: state-and-behavior (estado y comportamiento), y definitivamente se puede conseguir lo mismo usando FP.
Así que también pienso que OO no lo es todo, sin embargo, no es lo único.
PDTA: Ruby es 100% OO y sí se pueden hacer JOINs.