This is one of those behaviours that I've changed back and forth over the years based on requests by users.

When $away was being set before 305 triggered, users complained that they wanted to know whether they were already away when the event was triggered, so I changed it back.

There are other events where the choice to set a value during an event is somewhat arbitrary, and may be useful in one situation and not useful in another.