BTW it looks like syslog-ng makes writes in fixed 4096 buffer length. For pipes it is wrong - system guarantees atomic delivery of a single write up to PIPE_BUF; system is free to reorder parts of any single write with larger size. Portable way to query for PIPE_BUF on modern systems is to use (f)pathconf utility.
I don't understand you here. You mean that chunks of data written are reordered, or if there is multiple write()-s to the same pipe then those may get reordered?
Eh ... sorry, I swear I have seen it somewhere but cannot find it. In those documents I have now PIPE_BUF applies just to cases of several processes writing to the same pipe. So the only case it may cause a problem is when syslog-ng is not the only one writing to pipe. -andrey