"I have made this longer than usual because I have not had time to make it shorter."
-- Blaise Pascal
Ideally, we would explore software in the glue-and-duct-tape cowboy mode, and later as our domain was better understood we'd go back and rework it with the knowledge we've gained. But nobody has the time; New exploration beckons, and in a competitive environment you need to move forward just to stand still.
Islands of careful development exist, and you occasionally get lone wolves, or non-profits with resources, who can work on a common problem with particularly bad existing solutions, but they are the exceptions to the rule.