Pontos de sequência em printf

Eu liaqui que existe um ponto de sequência:

Após a ação associada ao especificador de formato de conversão de entrada / saída. Por exemplo, na expressãoprintf("foo %n %d", &a, 42), existe um ponto de sequência após o%n é avaliado antes da impressão42.

No entanto, quando eu corroesse código:

int your_function(int a, int b) {
    return a - b;
}

int main(void) {
    int i = 10;

    printf("%d - %d - %d\n", i, your_function(++i, ++i), i);
}

Em vez do que eu espero, recebo:

12 - 0 - 12

Significando que havianão um ponto de sequência criado para o especificador de formato de conversão. Éhttp://en.wikipedia.org errado, ou acabei de entender algo errado ou o gcc não é compatível nesse caso (aliás, o Visual Studio 2015 gera o mesmo resultado inesperado)?

EDITAR:

Entendo que a ordem dos argumentos parayour_function são avaliados e atribuídos aos parâmetros é indefinido. Não estou perguntando por que meu mandato intermediário é 0. Estou perguntando por que os outros dois termos são ambos 12.

questionAnswers(3)

yourAnswerToTheQuestion