Earlier quoted context omitted.
A particular problem with doing that is discussed in the post; you risk everyone's time being wasted if the company will never be able to meet your target.
For a big enough company, you can collect a few data points via Glassdoor[0], levels.fyi, etc to make sure that they pay in the range you're looking for before you even begin the interview process. For smaller companies, you're absolutely right, although I personally tend to give a very broad range[0] at the beginning of the process, and only narrow that down at the offer stage. That's worked well for me in the past.…
Why even give an upper limit? It's not like you'd refuse $400k if it was offered to you, would you?
Most companies will naturally start negotiation near the lower end of your range, even if they would have started way higher had you let them make the offer first. I really don't see an upside to this strategy.