The root of my reply was merely to reveal my experimentation with assigning the return of (++$i) to some value (since I also ran into the same error message you got).
Then, I attempted to explain the snippet you posted so that others may find it helpful to see what's going on.
My opinion? Yeah, the lvalue stuff is confusing and I don't quite see its usefulness. I would expect the behavior the OP expected.
Comment on Re^8: Pre vs Post Incrementing variables
When I said: "Mind you, it might make explaining this one a tad awkward :)", I meant explaining the logic behind it, rather than the implementations behaviour.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.