1. The list above miraculously works in LinkRest. Cool! (except for date/time functions ... because of #3)
2. The new functions are case insensitive when parsed from String. The rest of the expression syntax is traditionally case sensitive. I suggest that we align functions (both scalar and aggregate) with the prior behavior. Corollary to that - functions like CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP should be changed to camel case (currentDate, currentTime, currentTimestamp). And while we are at it, we need to add empty parenthesis to the no-arg function String definitions ("currentDate()", etc.), so that they look like functions, not paths and don't clash with property namespace. No parenthesis is a JPA approach, we have no reason to mirror it anymore.
3. Date/time functions are unparsable. From what I can tell "someDate < CURRENT_DATE" is not recognized by expression parser now and can only be created via the API.
4. We need more date/time functions. I realize this can be a pretty long list. Perhaps we start with date/time parts extraction functions that I personally find very common (based on java.time.LocalDateTime terminology):