I think we essentially agree, Darrell, but I would suggest a couple of clarifications to your points. First, I think you would agree that you cannot start with iteration. You need to start by understanding the people you are designing for, understanding a problem they have, and designing a proposed solution to their problem. Even in this initial process, user input is invaluable, but is not obtained through iteration. Once you have an idea to discuss with your target users, iteration can occur.
Second, purpose needs to be defined up front and needs to be a guiding light to all of the design that follows. It is healthy to revisit purpose from time to time, but at that point you may be disrupting yourself. That may be necessary to avoid being disrupted by others, but you cannot afford to do that on a daily basis. :)