In practice this can’t happen because 30 minutes into coding you will find something that nobody thought about.
Sure you can. Mapping out the unknowns (and then having a plan to make each one knowable) is the single most important function of whoever you have designing your architecture.
Up-front architecture isn't about some all-knowing deity proclaiming the perfect architecture from on high. It's an exercise in risk management, just like any other engineering task.
and
> isn't about some all-knowing deity
Seems like a big conflict of your own thoughts.
Or as they say....
> there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns—the ones we don't know we don't know.
And pretty much your job as an engineer is to mitigate the risk that poses.
We don't build new architectures in a vacuum. We build on what has worked before in similar situations, and we adapt it to the problem at hand.
That adaptation is an ongoing process - but it's not the same as saying "fuck it, let's vibe-code our architecture"