It is not necessarily the case that a script of less bytes will perform better (i.e. faster). Readability put aside, $reg* for example is computationally quite intensive.
You're right regarding $chan().ial, but this really depends on the purpose of the script...
Myself, I'd check for .inwho in any case (imagine 3 other scripts doing their "on me join who #" each), and - if you really need your internal lists updated right after join - swap the task into a separate script, with a queue system (imagine 10+ chans in autojoin and touchy flood-settings of the network).