I don't think aliases are quite the cleanest builtin solution.. mIRC can do better if its given control of the situation. A local alias wouldn't actually work anyway unless mIRC cheated and accessed it as a global for the reply. In general, it's just confusing because mIRC rarely relies on alias overriding to define functionality from the script engine. What I mean by that is that you're never expected to fill in a specific alias name to make mIRC do something, it would be hard to document and, it just doesn't fit.
It did make me think of something useful though..
I usually hate abusing mIRC's more obscure syntaxes but I think this is one of the few situations that truly justifies a:
#script NAME
#version 1.0
Directive parsed by mIRC. That would be the only one to truly be file dependent and leave when the script was unloaded. If a script owned many files it would just define #script/#version in one of them. Same as an alias but defined by a relatively familiar construct and less error prone in actually getting it right. Also, #script/#version would also be the only syntax that would work if your "script" was an alias or popups file (alias could not).