Apologies, this is a false alarm. The oid returned for the datatype is int4 but since this is a simple query the actual value is a string. I didn't read the doc correctly the first time.
The timeline ID returned from psql is displayed as 1. Based on the protocol docs, I was expecting the packets to correspond to an int32 value of 1, but I am seeing them coming as the string "1". I see following (values are hexadecimal):