(rename-file "foo.exe" "faa") -> "faa.exe"
Unfortunately at some point it seemed ok to follow SBCL and interpret physical pathnames without extension as having :type NIL and drop support of :unspecific, as it leads to non-readable pathnames (i.e. a single namestring does not identify uniquely a pathname).
However, while this would seem a case for :unspecific instead of NIL in missing components, following that route would mean that (merge-pathnames "faa" "foo.txt") -> "faa"
I do not know which one is more annoying.