I agree with Wims that these identifiers should be local to the alias/event calling them. Like local variables...

Code:
; Usage: /alias.one
alias alias.one {
  var -s %aliastest = alias one
  alias.two
  echo -a %aliastest <-- alias one
}
alias alias.two {
  var -s %aliastest = alias two
  echo -a %aliastest <-- alias two
}


alias.one sets the local variable %aliastest to the value 'alias one', then it calls alias.two which sets a local variable with the same name %aliastest to the value of 'alias two' but the value of the variable of the same name in alias.one is not changed. I think $v1 and $ifmatch should behave the same way. As far as breaking scripts, so what, scripts can be updated.

~ Edit ~
I would call this part a feature request rather than a bug report.