> Maybe we should modify tac to add the -z option. Would you care to write a > patch? It would be redundant, as tac -s $'\0' is equivalent.
If you want to switch between newline characters dynamically (a bad idea, IMO) you could edit libc/stdio-common/getline.c to pass read in the newline character from an environment variable. More preferably, you could rewrite getline to read in self-delimeted lines.