First. Eggdrop sends information to a PUB class bind, using "nick uhost hand chan arg". It is not based on the order you place the names in this list, these are only the names you wish to refer to them as in your script, and eggdrop will allways send the data in the same order regardless.
Second. the variable name "args" has a special meaning in Tcl, and is used in a way, that you can take unlimited arguments to a proc, without error, so you can use variable length argument lists.