This method evaluates the expression until a value (a non-Expression) object is returned. If the expression returns another expression, then the nested expression is evaluated.
Sometimes when Jelly is used inside Maven the value of an expression can actually be another expression. For example if a properties file is read, the values of variables can actually be expressions themselves.
e.g. ${foo.bar} can lookup "foo.bar" in a Maven context which could actually be another expression.
So using this method, nested expressions can be evaluated to the actual underlying value object.