De onde vêm os pontos de sequência?

Eu sei que escrever algo como

++a = a++;

Não é apenas ilegível, mas também viola os pontos de sequência c / c ++.

De onde vêm essas limitações? Como alguém pode ver esses 'problemas' antes de encontrá-los como bugs?

questionAnswers(4)

yourAnswerToTheQuestion