I don't think you understand the usage of $$.
When an identifier starts with $$ rather than $, it means the running script (and any higher level code from which this script is called) will halt completely if the identifier returns $null. If you press cancel on the $$input that asks for an email, the identifier returns $null, so this code stops immediately (think of it like a /halt is inserted at the code where you have the indentifier with $$)
To answer your question: why doesn't it jump to the :error label? Well why should it? No mIRC error occured, so there's no reason to jump to the error label.
$$ has its usages, though in a case like this, it's clearly a better option to let the script handle it when an email was not supplied (like echoing a message about missing email, and taking some other steps) than to simply have the entire script halted without a warning whatsoever from the script.