This is definitely a bug and not limited to pdf files (of course) but can be reproduced with all binary content - at least here.
The content is transferred like this at the moment:
Client uses ContentService and writes byte[]. The byte[] is transformed to a string in ContentWebService:205. AbstractContentWriter creates a byte[] from that string (yuck!) with the specified encoding.
One minor problem can be found in ContentWebService:
writer.putContent(new String(content));
You should use the encoding that is specified by the ContentFormat as the ContentWriter does the same.
But I still do not know where the problem is - perhaps Axis destroys my data. The default encoding of my platform is UTF-8 so this shouldn't be a problem.