According to the documentation:
default-directory
is a variable defined in ‘C source code’. Its value
is "~/" Local in buffer *scratch*; global value is nil
Automatically becomes permanently buffer-local when set. This
variable is safe as a file local variable if its value satisfies the
predicate 'stringp'.
Documentation: Name of default directory of current buffer. To
interactively change the default directory, use command ‘cd’.
So, the default-directory
variable, is the "current" directory, for the current buffer. And visiting any file or any directory, changes the default-directory
for that buffer.
EDIT
You can achieve what you want by:
adding (cd "/some/dir/")
in yout init file.
using a hook: (add-hook 'find-file-hook #'(lambda () (setq default-directory (expand-file-name "/some/dir/"))))
writing a custom function that will (cd "/some/dir/")
before finding file.