Two things that would improve jsonpath processing:
1) If jsonpath expression ?() contains json references '$.' or '@.' the reference jsonpath is compiled during expression evaluation, although it could and should be already prepared during the jsonpath compilation.
2) When indefinite expression uses first() function, normally only the first matched result is used and the rest is discarded. This means that jsonpath execution can be aborted on the first match.
This wouldn't work with some kind of operations that would convert multiple matches into something else. The closest would be our aggregation functions (min, max, sum...), but they return a number, so $[*].value.sum().first() would not work in the first place. So there seems to be no apparent drawbacks while the performance benefits would be noticeable.