If attempts to modify a constant item instead created a temporary variable to put it in should it be the RHS, then that would work regardless of associativity.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?