Apparently not, since you thought the presence of NULL BYTES in a UTF-16 string would cause items to be separated incorrectly. IT DOES NOT. NULL BYTES are fine in a UTF-16 string. NULL CHARACTERS are not fine. There is a difference!
That is not what I thought, but obviously as a non-native speaker I'm not able to transport what I thought.
What happened is simple - I had a REG_MULTI_SZ with two lines, "Hello" and "World", and using ReadStringList I got items "H", "e", "l", "l", "o" .... "d".
I did NOT think the presence of NULL BYTES in a UTF-16 string was causing the problem, but that the code interpreted the UTF-16 bytes as Ansi bytes.