I belatedly found the below thread when trying to figure out what went down with unix-2.5.1.0, and it seems that the impetus for the ".ByteString" modules was to change file path representation, not the representation of file contents.
The point of that was that, at the time, GHC had changed FilePath in a way that was in fact rather broken. It has since been fixed, but still has no way to represent a *raw* FilePath but instead makes the non-POSIX (and in fact, only true on OS X and even then only guaranteed for paths used from Carbon/Cocoa apps) assumption that FilePath-s have known encodings.
The ByteString version of the module is intended to allow apps that actually work reliably on Unix/POSIX systems to be written. The other use would perhaps be nice, but is already covered by the ByteString package, and while I understand that it is not considered appropriate to want to be able to write reliable filesystem-using applications on POSIX systems in most developer communities these days, some of us would still like the ability to do so.
--