Part of the reason Agile/XP/etc. exist is to argue against this line of thought. Iteratively putting a working product in front of people is more effective at getting you high quality information than millions of dollars of upfront research.
Agree but it's not really a dichotomy. From initial conception to final release, you should be researching by iteration. Eventually that means user-testing prototypes, then betas, then RCs.
Agreed but part of that process is forming and re-forming your goals. It's ok if you aren't exactly sure what the goal is or if it turns out that the ones you thought you had were wrong.