The caller needs to be able to specify the protocol version.  Just because btcwire supports a specific protocol version, it doesn't mean the caller will be using it as they could have negotiated an earlier protocol version with a remote peer.