OO is only an explicit design decision which can also be hidden in an implicit way of separating things which should be kept separated/dependent etc.
If you choose OO, you are automatically bound to the OO limitations (no matter how sophisticated this might be) of the designers of a certain kind of OO.
Already the fact that there exist so many different OO ways, shows clearly that OO is no really uniform, plain and straightforward concept. It is always designed with a certain kind of problems in mind, while in practice every problem has its own needs...
If flexibility is more important to you than some programming paradigm or scheme to follow, you certainly don't choose OO (if possible, depending on the language).
If you choose OO, you are automatically bound to the OO limitations (no matter how sophisticated this might be) of the designers of a certain kind of OO.
Already the fact that there exist so many different OO ways, shows clearly that OO is no really uniform, plain and straightforward concept. It is always designed with a certain kind of problems in mind, while in practice every problem has its own needs...
If flexibility is more important to you than some programming paradigm or scheme to follow, you certainly don't choose OO (if possible, depending on the language).