I don't think so. When you do a rewrite, you have to uncover all use-cases that the the original software was covering. The software was doing A,B as well as C, D, E. When you do the rewrite, you will focus on the truly important use-cases A & B, and only later you figure out that people were really depending on C. Then you implement C, but D&E were really important as well. And before you know it, you're back to where you were before the rewrite: an organically grown codebase that solves A, B, C, D as well as E. The only difference with the original codebase is that it does A&B more efficiently, but C,D,E are bolted on. The original codebase had different biases (maybe C&E).