Currently, preprocessing stops due to error message, if subexpressions involving eval() or solve() fail to be evaluated numerically because of at that stage undefined variables (message: Variables undefined)
Would the functions return themselves (just the original expressions) unevaluated in these cases, the following problems would be solved:
1. from post http://en.smath.info/forum/yaf_postsm12860_Multiline-functions-and-functions-as-function-arguments.aspx#post12860
f(g(1);x):=g(x)
g(x):=eval(x+x)
f(g(_);2)=Error: "_ Not Defined".
This problem could also be solved, if actual values for function-valued parameters in function calls would be excluded from preprocessing
2. from post http://en.smath.info/forum/yaf_postsm12831_Maxima-Plugin.aspx#post12831
(where transferring solve() to Maxima fails)