It's a common concern for aggregations to not compute any results (empty bucket or null values) yet there is no general way to discover that when interacting with them. One needs to look into their internals but even then there are aggs where it's ambiguous whether any computation has happened or if it's just the default value (as aggs use primitives, there's no null).
Take SUM and MAX; if there's nothing to compute, SUM returns 0 while MAX returns Double.POSITIVE_INFINITY. The latter might be used but 0 is a valid sum so the caller has no idea whether its meaning is null or actually 0.
See #34896