1. Emacs seems to conflate whether a file system is case-sensitive, and
whether it is case-preserving. Darwin pathconf distinguishes between
_PC_CASE_SENSITIVE and _PC_CASE_PRESERVING. For example, perhaps the
following code in dired-do-create-files:
(if (and (file-name-case-insensitive-p (car fn-list))
(eq op-symbol 'move)
dired-one-file
should also check whether (car fn-list) is on a case-preserving file
system (if not, there's no point going ahead, as the user can't change
the case anyway). I suppose this would require adding a Lisp predicate
for _PC_CASE_PRESERVING. (Possibly the MS-Windows code already deals
with this, and Cygwin and macOS are currently broken.)