No it does not.
We just need readFields() and write() to agree on the format for serializing the splits.
By the way if you want to compress, you can just compress the entire split by writing it to a new DataOutputStream(new GZIPOutputStream(new ByteArrayOutputStream()) and then write the content of the BAOS to out in write(out).
We should not use writeUTF because of the size limitation. It can be replaced by writing the size of the byte array as an int followed the the UTF8 bytes.