Your error handling is not how I would implement mine, either, and I find try/catch blocks to be useless (in C++) and a cause of many other problems if not used correctly. I find that most people who use try/catch blocks are often just trying to catch general errors to stop their application from crashing.
This isn't a bad idea. In fact, there are examples of shortcuts similar to this throughout mIRC and other languages that you'd no doubt enjoy like PHP. Other examples: C/C++ have function pointers/references, C# has delegates, Java, JavaScript, ... Can they refer to their own functions? sure they can. If they support function inlining and choose to make use of those features, are they going to need to copy/paste/modify previous code 8 or 9 times in a row? Probably not.