> I'm guessing there was a syntactic reason

Actually it was just a pragmatic reason. It was a simple (and hence quick) way to enable lazy evaluation. It is certainly our intention for subsequent work to get rid of the "lazy" keyword.

For the replacement we considered things like: alternative aggregator instances (I think that's also what you're suggesting); changing the default behaviour via iris.FUTURE; etc.