`values` might be quite large (up to W), without `values_agg` getting the current window value would be O(W) rather than O(1).
Note that there isn't a `finalize` call, only an `eval`, which gives the current aggregate over the window. You typically use these sliding window functions in a way where you want to get the current value every time the window moves.