Consider the C code a = a = a. There\'s no sequence point for assignment, so this code produces a warning when compiling about an undefined operation on a
It's quite likely that you end up with the desired behavior. When somebody write a=a=a he probably desire a to be unchanged and when he writes a=a=b he probably desire a to be changed to b by the end of the statement.
However there are thinkable combinations of hardware and software that indeed breaks this assumption. Consider for example hardware where you have an explicit parallel instruction stream. The double assignment could then be compiled to two instructions trying to store data simultaneously in the same register. Furthermore the hardware designer could also have done the assumption that instruction pairs doing that is not allowed and could use don't-care values for those cases (and simplifying the HW).
Then you could actually end up in a situation where a=a=a actually changes the value of a and a=a=b ends up in a not being equal to b.