I deny that the example given counts as "broken". The expectation seems to be that, if a variable was created as the result of a function call with side effects, <i>every</i> use of that variable on the right-hand-side of an equals will result in an additional function call, with side effects. I suppose that that's mathematical equality, as defined in math papers, but we aren't writing math papers. Programmers would find that behavior to be <i>much</i> less useful than the current one.<p>[Edit: I mean, I guess that the proposed approach allows "algebraic reasoning", which some people find helpful...]