mIRC doesn't deal with overloading very well, infact it only does in a very limted (perhaps unintention) manner.

Local aliases (in remotes) overwrite all other aliases
Aliases overwrite all other aliases bar local aliases
Remote aliases overwrite commands
Commands don't overwrite nuffn.

So, you can do this:
alias -l script_name {
return Coool Addon by LamerDood
}
and in aliases have:
script_name {
return Coool Script by LamerDood
}

So any other code that uses $script_name gets a default alias or a local alias.

But what if you want to call the default script_name alias? You can't as mIRC sees this as recursion (whihc is a no no).
alias -l script_name {
;This is a no no
;We'd expect this to return
;Coool Addon by LamerDood; using Coool Script by LamerDood
return Coool Addon by LamerDood; using $script_name
}

Same problem with exists with vars, but *shrug*, this isn't about them.

So, maybe we could have $calias().type, and some prefix or command for calling the ORIGINAL alias. But, there is a workaround too:
mydo { $1- }

Its not perfect though. Far from it. $calias().type would be useful for:
alias monkey {
if ($calias().type == local) {
return This method can only be called from PUBLIC methods!
}
}
alias monkey2 {
if ($calias().type == global) {
return This method can only be called from PRIVATE methods!
}
}
You would have much more flexibility in controlling what can and can't play with your script.