Well your solution doesn't in fact really solve anything, you still execute a /who #chan when you join, which can either a.) flood you off or b.) produce incomplete results, on large channels. You also make a great deal of assumptions. I never change my nickname when I'm away, I don't really see the point. If someone is talking to me, sees I'm not responding, then they can just /whois me and see that I'm away. Additionally, I often do join channels when I'm away. When I set /away it doesn't necessarily mean I'm away from my computer, it means I'm busy and I don't want to talk. But if I need to talk to someone about something important, I will join a channel to talk about it. For example, if I'm away because I'm coding something, if I needed help with something, I'll join a coding channel and ask, I won't remove my away status so that I can ask, then reset it, and I'm sure many others do the same.