Это и о том, и немного не о том. Т.е. тут про "на откуп компилятору" речь не идёт, но тут, во-первых, приведён пример парсинга "до максимальной длины", из-за которого компилятор просто не может x+++++y отпарсить как x ++ + ++ y, пробелы надо ставить ручками.
"на откуп компилятору" возникнет в случае x++ + ++x, результат зависит от порядка вычисления подввыражений.
а во-вторых - выскочил как раз относящийся к моему исходному посту момент.
x ++ ++ violates a constraint on increment operators для встроенных типов. Т.е. (x++)++ - "низя", с ++(x++) та же беда. А для заведённіх программистом классов могут быть перегружены operator++(int) (или operator++(C&, int)) и на них уже єти ограничения распространятся не будут.
p.s. я искал абзац под номером 2 :-), а этот абзац имеет номер 5