Actually the ^ prefix is for making the event trigger before the default action. /halt is what halts the default action. So, ^ is needed because it makes no sense to /halt something after it has happened.