Atribuição dupla da mesma variável em uma expressão em C ++ 11

O padrão C ++ 11 (5.17, expr.ass) afirma que

Em todos os casos, a atribuição é sequenciada após o cálculo do valor dos operandos direito e esquerdo, e antes do cálculo do valor da expressão de atribuição. Com relação a uma chamada de função seqüenciada indeterminadamente, a operação de uma atribuição composta é uma única avaliação

Pelo que entendi, todas as expressões que fazem parte da atribuição dada serão avaliadas antes da atribuição em si. Essa regra deve funcionar mesmo se eu modificar a mesma variável duas vezes na mesma atribuição, o que, tenho quase certeza, era um comportamento indefinido antes.

O código fornecido:

int a = 0;
a = (a+=1) = 10;

if ( a == 10 ) {
    printf("this is defined");
} else {
    printf("undefined"); 
}

sempre avaliar paraa==10?

questionAnswers(3)

yourAnswerToTheQuestion