Isn't the evaluated value different from the expression? i++ returns the value of i before increasing. i-=-1 would return the value after it has been increased. Wouldn't it be more correct to make it equal to ++i
They're especially also a source of bugs, because they encourage manually incrementing indices and manually accessing array positions, which is almost never actually sensible.