The reason that /reseterror is important is that there are a number of places where the scripting engine checks if it is in an error state and has to skip sections of code because of that. Regex, and some other identifiers, include a check for the error state. Many of these checks were added over time, when users reported issues, so they cannot be removed without re-introducing issues and changing the way the scripting language works. That is why it is recommended that /reseterror is called as soon as possible once an error is triggered, if you want a script to continue running normally. There is no way around this without a redesign of the scripting language I'm afraid.