O problema do diamante é a incapacidade de decidir qual implementação do método escolher. O Scala resolve isso definindo qual implementação escolher como parte das especificações de idioma ( leia a parte sobre Scala neste artigo da Wikipedia) ).
É claro que a mesma definição de ordem também pode ser usada na herança múltipla de classe, então por que se preocupar com características?
A razão pela qual o IMO são construtores. Os construtores têm várias limitações que os métodos regulares não têm - eles podem ser chamados apenas uma vez por objeto, precisam ser chamados para cada novo objeto, e o construtor de uma classe filho deve chamar seu construtor pai como primeira instrução (a maioria das linguagens faça isso implicitamente para você, se você não precisar passar parâmetros).
Se B e C herdam A e D herdam B e C, e ambos os construtores de B e C chamam o construtor de A, o construtor de D chama o construtor de A duas vezes. Definir quais implementações escolher como Scala fez com os métodos não funcionará aqui, porque ambos construtores de B e C devem ser chamados.
As características evitam esse problema, pois não possuem construtores.