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.