...а в результате код класса оказывается размазанным по всему проекту. Лепота!
Да, повторное использование кода называется. Например в руби существует понятие mixin - это такой модуль, несущий в себе *определенный* функционал (часто какой-нибудь сложный функционал, например DataMapper). Т.о. код моего класса может быть размазан даже не по моему проекту. Или ты предлагаешь прямо в классе все это написать) Ctrl+C, Ctrl+V) Как повторно код-то использовать?) лол.
Речь о том как в С++ подобном ООП дописать классу метод (то есть с доступом к приватным полям, агрегация тут не поможет) который не объявлен внутри класса, и без правки уже существующего кода (code reuse). Нужно унаследовать класс и дописать метод. Это обеспечивает сохранение инвариантов исходного класса, правильность наследуемого класса - уже другой вопрос.