I wasn't precise enough The question is: Why is there a method (File.WriteList) when this method (does not work properly). Properly = Writing a List as it is.
File.ReadList reads a text file and returns a list with its lines.
File.WriteList writes a list to a text file where each item is written to a separate line.
The answer to your question is that this is how these methods were designed (and documented).
This behavior will never change.
If you want to serialize a list then use B4XSerializator or RAF.WriteB4XObject. The result will be different. You will get a binary file.