Nice work, but please don't call it the "Bitcoin protocol spec". Your document is not a spec. It is an attempt to describe in English the Bitcoin protocol, but anyone who implemented it based on your description would get it wrong. For example you didn't mention the SIGHASH_SINGLE bug and many other important areas like the difficulty transitions are also left unspecified.
As a loose description of the protocol for newbies it's an invaluable resource and perhaps we should link to it from the developer guide. As something that claims to be a specification it is quite possibly dangerous - the only spec that matters is the C++ original.