QUOTE (Xenia @ Jul 25 2012, 19:38)

порядок выполнения операций (precedence) в выражениях жестко определен не только в C, но и в остальных языках программирования.
Приоритет операций - да. Порядок вычисления подвыражений - нет.
QUOTE (Xenia @ Jul 25 2012, 19:38)

то как может быть так, чтобы "accesses is undefined"?
Обращение к одной переменной может вызвать изменение другой. Например, чтение/запись UDR в любимых вами AVR сбразывает/устанавливает флаг RXC/UDRE. Не стоит огульно обвинять авторов компиляторов в глупости - часто они знают то, что вам и в голову не приходило.
QUOTE (Xenia @ Jul 25 2012, 19:38)

Очевидно, что accesses тут тот же самый, что и у порядка выполнения операций.
Как раз таки очевидно, что access order может быть любым.