Well, one may argue if it is a bug or not, because there is no defintive reference. RFC 3164 is it not, for various reasons with the most important being that it doesn't talk at all about plain tcp syslog. The industry-standard is that LF is used as framing. Kiwi, I think, has a broken handling of TCP segments and I don't know why syslog-ng works. Maybe it has the same problem, maybe it accepts NUL characters as terminators, too. At least in the Kiwi case when two broken implementations look like a fix (and work under usual conditions, but only them...) that doesn't make a sound technical solution

.
Quite honestly, I think you can be happy that there is the NUL character. Usually, it happens to be there because the developer did not properly parse the length parameter when issuing the send() call, a common programming error, but, hey, we are so thankful for every broken program that by virtue of doing things wrong help us to escape wrongness a bit. I know this all sounds pretty ignorant, but I have seen so many borken implementations in the past 10+ years ... and I have mode so many programming errors myself that I really know what I am talking about.
I would be most interested to hear what the Netscreen folks say. Of course I can (and probably will) add a work-around for another far-from-what-is-standard implementation, but I think those vendors need at least to know what they are doing...
Rainer