Could we simply add some prose to SRFI 170 permitting implementations to
translate relative pathnames per the thread CWD before passing them to
the syscalls?
It seems to me that would break portability, but I can't quite put my finger on why.
While at it, we could also allow translating pathname
objects to strings (for Schemes like Kawa that have a path datatype).
That's just the usual sort of "extension rather than domain error" situation that Scheme has always allowed (except for R6RS). If your Scheme wants to evaluate (car '()) => (), it can do so (Chez used to), but no specific mention of this fact is made in any RnRS.