Even with “hard” requirements in advance, things are always subject to change, or unforeseen requirements additions/modifications will be needed.
I don’t see why you can’t maintain the spirit of agile and develop iteratively while increasing fidelity, in order to learn out these things as early as possible.
> I don’t see why you can’t maintain the spirit of agile and develop iteratively
The question is not whether you can't. The question is whether it provides advantages. Agile comes with its own downsides compared to a waterfall. Note, that I've been working with agile methods most of my career and I don't want to change that.
I don’t see why you can’t maintain the spirit of agile and develop iteratively while increasing fidelity, in order to learn out these things as early as possible.