It is and isn't. Remember how long ago in pre-renewal position mechanics allowed for a 185 aspd with a bow to just freeze an enemy in place? Like 186 with a 2h Sword, and like 184 with a Katar?
Now you can't really do that with Classic.
From my understanding, a good part of the reason for Renewal wasn't so much because RO1 was dieing, as RO1 was corrupted, both the kRO, and kRO backups, and iRO, and iRO's backups. They had to rebuild the game anyhow because the corruption just got worse and worse. It's one reason so many old accounts did not properly transfer to Renewal's Ymir, despite being in good standing. I personally lost 3 of my 5 accounts, two of which I shared with friends who wanted to play sometimes, so we split and I paid for them. I can't find any evidence they ever existed, even on RODB, but that was a long time ago and I don't even recall their account names now. A few other friends of mine also lost their accounts, one of whom played all the way up to Renewal.
All of the original code for the game, all of it, to my knowledge, was written without proper documentation for what functions do what, how they're supposed to work. Nothing, so the team working on Renewal on kRO's end and iRO's end actually had to rebuild RO from scratch and from what bones were left that were clean.
No good original builds at all existed, nothing, only remnants of builds. That Classic was being worked on from the beginning because they always intended for the original server to be renewed as close to what it was. It just took a long long long time to rebuild what was left over, and to reconfigure what they thought was a close approximation to the original pre-renewal.
They then used Renewal for another purpose, given there was a mass exodus near the end of pre-renewal: to rebuild RO's numbers by offering a different experience. However the main reason was only because they literally HAD to make a new game and fast.
Stuff like Sprite data is easy to fix, same with music corruption, but hard game code? It can get jumbled, hex values altered and changed for corresponding calls for functions and objects in the code. Without any real knowledge and mapping as to what does what, and with little to no oversight on the quality and consistency of backups, Gravity really fudged themselves up.
Maybe my story is wrong, but it came from someone I won't name who because s/he wants to remain nameless, but who did have direct insider contacts to the entire GM team.