Я полагаю, что логически, если вы напишите «x = ++ x» или «x = x ++», в любом случае вы ожидаете, что конечный результат будет таким, что x на единицу больше, чем началось. Но сделайте это немного сложнее. Что если вы написали "x = x + (++ x)"? Это то же самое, что "x = x + (x + 1)"? Или мы сначала добавляем один, а затем добавляем x к себе, то есть «x = (x + 1) + (x + 1)»? Что если мы напишем «x = (x -) + (x ++)»?
Даже если бы вы могли написать языковую спецификацию, которая придавала бы однозначный смысл подобным конструкциям, а затем могла бы реализовать ее чисто, зачем вам это нужно? Ввод одинакового приращения в присваивании одной и той же переменной просто не имеет смысла, и даже если мы вытеснили смысл из этого, он не предоставляет никакой полезной функциональности. Например, я уверен, что мы могли бы написать компилятор, который бы взял выражение типа "x + 1 = y-1" и выяснил, что это действительно означает "x = y-2", но зачем это беспокоить? Там нет выгоды.
Даже если бы мы написали компиляторы, которые делали что-то предсказуемое с "x = x ++ - ++ x", программисты должны были бы знать и понимать правила. Без какой-либо очевидной выгоды это просто усложнит программы без всякой цели.