The 'multiple scripts' aspect of signals is that multiple scripts can trigger from a single signal without that originating script needing to to know about all the receiving scripts at the time it's written.

For instance if I had a script that allowed mIRC to send and receive video messages I could have that script do /signal vidstreamstart nickname on creation of a video link, and /signal vidstreamend nickname upon closing. Then, I could have any number of other scripts use on *:signal:vidstream*:do_stuff to trigger additional behaviour in mIRC that is beyond the scope of the original video streaming script (for instance I might later decide it's useful to stop music playing on video start, or to set myself away/back on IRC when opening/closing video links).

There's no simple way to do that with aliases - I'd need to know all the scripts that are going to be called when I wrote the original video streaming script.