I write greenfield projects this way and have continued to do so with LLMs. it works very well if you have a decent idea of the architecture you are heading towards, and if you are willing to refector aggressively if you have a better idea.
to me the key point is that I get those better ideas a lot more readily by looking at the code than by planning up front - I have a good feel for when adding the next feature is harder than it should be, or when the resulting code is messier than I would like, and seeing the concrete code usually gives me the best idea for how exactly to improve it.