A simplistic take on a complicated subject. Some things, many things, warrant a rewrite. There are several reasons why: 1) the system is not used in the way in which it was designed 2) you've learned a great deal more about the problem 3) duct-tape instead of welds in the initial approach 4) technology obsolescence 5) overly-clever code 6) undocumented code, etc.
Now, I think the 'no rewrite' argument has validity at certain levels. Systems will morph (because life/problems change) but the underlying functions may not need to. Composability and interfaces are wonderful tools to address that problem.