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,
every 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
much less useful than the current one.
[Edit: I mean, I guess that the proposed approach allows "algebraic reasoning", which some people find helpful...]