Проблема алмазу полягає в неможливості вирішити, яку реалізацію методу вибрати. Scala вирішує це, визначаючи, яку реалізацію вибрати як частину мовних специфікацій ( читайте частину про Scala в цій статті Вікіпедії ).
Зрозуміло, те саме визначення порядку також може бути використане у множинному успадкуванні класу, так навіщо турбуватися з рисами?
Причиною ІМО є конструктори. У конструкторів є кілька обмежень, яких у звичайних методів немає - їх можна викликати лише один раз на кожен об'єкт, їх потрібно викликати для кожного нового об'єкта, а конструктор дочірнього класу повинен викликати конструктор батьків, як це перша інструкція (більшість мов будуть зробіть це неявно для вас, якщо вам не потрібно передавати параметри).
Якщо B і C успадковують A, D успадковують B і C, і обидва конструктори B і C називають конструктор A, то конструктор D викличе конструктор A двічі. Визначення, які реалізації вибрати, як Скала робив із методами, тут не працюватиме, оскільки обидва повинні називатися B - х і конструкторами C в.
Риси уникають цієї проблеми, оскільки вони не мають конструкторів.