Why assignment operators return the right-hand-side