Aren't inheritance, encapsulation concepts of OOP more than guiding principles "to be followed"? Understanding inheritance vs composition becomes the basis for anything OOP, as are with other concepts.
Inheritance is considered harmful nowadays even if you ask the most hardcore OOP folks.
That leaves us with composition, which isn't unique to OOP and eliminates one of the core "benefits" claimed by OOP proponents. (Object oriented thinking basically. Animal <- Cat, Dog, etc.)
Your argument (as many others) falls into the category of OOP minimalism. Basically, it says: "Do less OOP". That's part of the philosophy for years now. It shows that OOP is essentially self defeating as there will be nothing of it left after every new "best practice" has advised us to get rid of each single OOP concept.