Chápu. Ale to je v OOP přímo nechtěným jevem, znamenal by totiž rozdělení stavů a změn, takže data už nemají jasně definovanou, úplnou a ohraničenou množinu chování, ale na data můžu použít i chování, které jim nepřísluší (porušení konzistence). To je chyba! Spíš ta „flexibilita“ na mě opět dělá dojem dodatečného řešení chybně namodelovaného objektového systému. Pokud vím (pouze jsem četl, nezkoušel), tak na zabránění zdvojení kódu mají některé jazyky Traits, ale to je něco jiného, ty jsou natvrdo připnuté k třídě, takže instance nemůže libovolně použít kdejaké chování.