Yeah, I have to agree with the fact that "dont do X ever" is a bit of an exaggeration. However, when I start a new project, I always prefer to remove any and all magic numbers as soon as possible.
By the way thanks for leaving comments like these, it's why I love this community.
Nice post!
I agree with most points, but have to disagree with the absolute statement "don't do X, ever." There's always context and I've definitely at times made things more complex than they need to be. "Overengineering" can be a problem, too, most often because you don't know the requirements of the next two or three needs of a feature, so you're likely going to have to refactor again. Many times, it's better to wait for two or three examples to remove the hard-coded number or refactor the shared logic block/method.
Also, a quick shout out to Martin Fowler's excellent book on refactoring, which is in it's second edition.
Anyhow, keep up the great posts!