First, no, it would not be a complete rewrite. Pretty much just the function bodies.
Also a lot harder than you think. GPL code is still under copyright. To protect you against chances of infringement, you'd have to pretty much start by reimplementing the app by following a header file, and spending a lot of time wondering "WTF does this function do?", "what does this function return when passed a null pointer" and "Argh, this part is horribly ugly".
It can be done, but it's a pain in the ass, and coding your own app is a lot more enjoyable.
Somebody actually threatened me with your exact scheme once. 5 years later it has yet to materialize.
Second, you get the advantages of compatibility with add-ons, plugins, etc., for free.
Third, you get binary and user compatibility, so you can get access to current users.
Until development diverges, that is. Users mostly keep using what they were using before. You're going to provide something more impressive than "what you had before, only now you have to pay for it!"
Fourth, unlike the open version, which even the original devs would have a hard time making money selling the code, you're free to optimize and sell the resultant binary code - "100% compatible but 30% faster!" Or "we've removed over 400 bugs compared to the original."
So you get a few corporate customers maybe. 95% of the userbase won't really care. See how many normal people (ie, not companies) bother with paying for RHEL vs the marketshare of the other distributions. Heck, most companies use CentOS when they can get away for it.
Your bug fixing and improvements probably will require changing the ABI.