Control stripping can be done but in mirc options itself, or with a simple $strip(), there is no need for a whole event for code stripping.

On to the main subject, i think the current behavior is preferable. The issue here, imo, is not how mirc handles events, but rather how scripters make unfounded assumption and write script that are not entirely compatible with others.

A simple solution is to NOT use multiple events for something like this, rather use one event that calls aliases. fex

alias stripcodealias {
; code in here, set result to local var %result or something
RETURN %result
}
alias somethingelse {
; code in here, set result to local var %result or something
RETURN %result
}

on *:input:*:{
var %out = $stripcodealias($1-)
var %out = $somethingelse(%out)
msg $target %out
}

OR simply something like

on *:input:*:{
msg $target $somethingelse($stripcodealias($1-))
}

Well im sure you get the idea. This same concept is true for most all of mirc scripting. If i have misunderstood you post i apologise and please clarify.