Comportamento indefinido: ao tentar acessar o resultado da chamada de função

O seguinte compila e imprime "string" como uma saída.

#include <stdio.h>

struct S { int x; char c[7]; };

struct S bar() {
    struct S s = {42, "string"};
    return s;
}

int main()
{
    printf("%s", bar().c);
}

Aparentemente, isso parece invocar um comportamento indefinido de acordo com

C99 6.5.2.2/5 Se for feita uma tentativa de modificar o resultado de uma chamada de função ou de acessá-la após o próximo ponto de sequência, o comportamento é indefinido.

Eu não entendo onde diz sobre "próximo ponto de seqüência". Oque esta acontecendo aqui?

questionAnswers(3)

yourAnswerToTheQuestion