Мне не нравятся черты, потому что они вводят сильные зависимости в коде. Эти зависимости могут быть очевидными (класс, который импортирует черту, черта, которая ожидает методы), но также очень тонкими (черта, которая скрывает супер методы / переменные экземпляра). Кроме того, нет адекватной поддержки инструмента для черт.
По моему опыту делегирование дает намного лучший и более многократно используемый дизайн в динамически типизированном объектно-ориентированном языке, таком как Smalltalk.