I think the protocol should not be defined by a particular implementation, even if that one was written by Satoshi.
Okey dokey.Reality is that the protocol IS defined by Satoshi's implementation.
This isn't like HTML where the worst thing that happens if two implementations disagree about the spec you get different looking web pages. Our worst case is much worse (if two popular implementations disagree then we potentially wind up with a blockchain split, and, essentially, two different currencies).
We need help creating tests to make sure different implementations agree on the rules; as you re-implement the protocol please set aside some time to think about that and help!