Чтение статьи 1.9/14 проекта С++ 0x. Там я нахожу:
Каждое вычисление значения и побочный эффект, связанные с полным выражением, секвенируются перед вычислением каждого значения и побочным эффектом, связанным со следующим полным выражением, которое должно быть оценено. 8)
И в сноске 8 говорится
8) Как указано в 12.2, после вычисления полного выражения выполняется последовательность нулевых или более вызовов функций деструктора для временных объектов обычно в обратном порядке построения каждого временный объект.
Что это значит "обычно"? Я думал, что верный порядок разрушения был правилом.