Dude, you have seen both me and stdragon tell you about $botnick...
From doc/tcl-commands.doc:
botnick
Value: the current nickname the bot is using (for example: "Valis", "Valis0", etc.)
Module: server
Now, if the bot has NOT connected to IRC, (ie. when you first start your eggdrop from the shell), your bot will not have a current nickname, because it has not yet connected to irc... this is fairly simple to understand, and is not a hard concept to grasp.
And because it doesn't get set on startup, whereas your bind DOES, the binding will be INCORRECT, thus will NOT work when you try it, regardless of your usage of "global".... The only reason it works is because you are .rehash'ing your bot after it has already connected to irc, thus $botnick has been initialized, thus the binding will use that value correctly.
So again, to reiterate, the problem occurs when you are starting your bot out for the first time.... See my previous post for the solution.
Oy vay...
(btw. the word you were looking for was "moot" not "mood", even though the solution we've given is NOT "moot").