I don't agree. The code may not do precisely what was intended but it is deterministic. If you understand the language, you can understand the code.
[Edit: "Better architecture, but bug-for-bug compatible" probably isn't the goal of the rewrite.]
Why not? From there you proceed to fix the old bugs.