Whether the system uses pread/pwrite is considered an implementation detail. However, it doesn't really matter. You an open a file with FileHandle.init, and then use the POSIX file descriptor (there is a FileHandle method to access the POSIX file descriptor) in your own calls to pread/pwrite.
FileHandle isn't even safe for single-threaded reading! Depending on how clever you are, or are not, you might not notice any problems. But it sounds like you are starting to think cleverly, which is a bad thing to do with FileHandle. pread() is probably a good idea. Just get rid of the FileHandle.