ООП - большой проект с перспективой расширения (наращивание функционала и т.д.)
Функциональное/процедурное - небольшие программы с чётко определённой задачей, с минимальной перспективой наращивания функционала.
Утрируя, подход нужно выбирать исходя из задачи. Если вам, например, нужно зажигать лампочку на в определённой ситуации, вам незачем пользоваться ООП (много лишнего кода понапишете), пользуйтесь функциональным/процедурным программированием. Если же вам нужно работать с большими объёмами данных, которые ещё и динамически меняются, или вы управляете огромным экраном с сотнями/тысячами лампочек, то резонно воспользоваться ООП (ибо - меньше кода получиться). В любом случае выбирать следует по задаче: при использовании какого подхода уйдёт меньше времени/кода на реализацию. В любом случае оба подхода можно комбинировать, порождая хтоническое чудовище под названием "гибридный код".