I agree with all of these myths except for two: Throwing away code and next attempts usually are better.
In my more than two decades of programming, I have found over and over that the actual source code in a project is usually the least valuable asset. The knowledge gleaned from writing that code is what is valuable. Most code doesn't need to be thrown out wholesale, but often that's the best approach. There is no fixed formula for determining when to toss the baby with the bathwater, but most code that needs tossing is so far into the rotten corpse category that it's plain to see.
As for follow up attempts being better, well, if you were a BAD programmer to start with, you may have gotten better. If you didn't know how to solve the problem the first time, you've either learned how or at least how not to solve the problem. Being an undisciplined programmer is probably in the minority. Of course, if you are an undisciplined programmer, you will probably continue to be so, but you've still probably learned something.
Anything worth doing once is worth doing again.
tad @ tadland dot net