Having the parameters inside the function helps a little (although it adds an extra step to maintenance and adds to the growing list of variables in the expression helper), but it leaves the problem that A) It's unclear what the parameters are from the action calling the function since it only separates by comma, not name, B) the action calling the function has its variables mangled together. Compare the format of the plugin from rex to the native function call (using some completely made up code for example purposes):
Comparison screenshot between the rex plugin and native plugin
Now I could make these variables in the event calling the function too, but now I have 3 variables calling the action and 3 variables naming the parameters inside the function.
You also have to hope that you never decide to replace the order of your variables - Suddenly "Function.Param(0) + Function.Param(1) / Function.Param(2)" becomes completely different when you decide you don't need parameter 1 any more - Function.Param(2) becomes Function.Param(1)and you need to refactor because the position of the parameters changed.
I hate to complain about the awesome work you guys are doing, but it seems like right now the plugin from rex is actually more powerful and easier to use. It just seems that using numbers to define parameters as well as requiring local variables on both sides to make the code readable is probably the only thing I can think of in C2 that makes things harder than regular programming <img src="smileys/smiley1.gif" border="0" align="middle">