What encoding is "pubkey" from the JSONRPC validateaddress command?
The public key is in the format returned by OpenSSL and is a straight hex-encoding of the bytes.  If the first byte is 0x04, then it is a 65-byte uncompressed key (32-byte X and 32-byte Y).  If the first byte is 0x02 or 0x03, it is a 33-byte compressed key (32-byte X and one bit for Y sign).

The recID is encoded as part of the signed message.  Check the verifyMessage() method in the ECKey class to see how it is extracted.

The column on the right is correct and it matches what you got from validateaddress.