Currently, if an expression is evaluated numerically, the computation is done with the expression as it is, i.e. without any symbolic optimization. This leads to complaints about undefined variables in cases where these variables could easily be cancelled out.
Users fight this by providing arbitrary values but feel like cheating. A milder cheat is to use an intermediate variable with symbolically optimized definition. Both is not intuitive (requires explanation, is sort of a trick).
I propose the following: if a result fails to display numerically, then apply symbolic optimization and retry numeric evaluation.