POSIX defines a text file as:
A file that contains characters organized into one or more lines.
A sequence of zero or more non-newline characters plus a terminating newline character.
Concept of char drivers is analogous to a stream. In this light,
read just returns whatever happens to be available next. Now what is available will usually be part of definition of the device whose driver it is. If the device returns newline character then so should the driver. Note that this means the device will return newline on all platforms, not just Linux.
In general, interpretating the bytes returned by
read is a matter of higher level abstraction. In terms of policy vs mechanism, char driver can be thought of as providing mechanism, leaving policy to higher layers.