One of the reason why Lean Startup methods are becoming more and more popular. Its all about challenging your most critical assumptions and pivoting accordingly.
Problem is, a startup could do all the things you listed completely correctly and still fail. There are infinite ways for a startup to fail.