I haven't really thought about this properly, but why not just:
(defun sysdef-central-registry-search (system) (let ((name (coerce-name system))) (block nil (dolist (dir *central-registry*) (let* ((defaults (probe-file (eval dir))) (file (when defaults (make-pathname :defaults defaults :version :newest :name name :type "asd" :case :local)))) (when (and file (probe-file file)) (return file)))))))
That way, as long as the Lisp and OS agree that the pathname in *CENTRAL-REGISTRY* more or less denotes a directory everything should just work -- assuming that in sane environments (probe-file "/foo/bar") returns something with (:absolute "foo" "bar") in the directory component as long as it actually is a directory.
Cheers,
-- Nikodemus