From the docstring of `user-init-file':
File name, including directory, of user's initialization file.
If the file loaded had extension `.elc', and the corresponding source file
exists, this variable contains the name of source file, suitable for use
by functions like `custom-save-all' which edit the init file.
Which is true, *once* the user init file is loaded. While it loads,
`user-init-file' contains the real name of the file loaded:
------ .emacs ------
(message "user-init-file: %S" user-init-file)
--------------------
After compiling .emacs and starting Emacs, *messages* contains:
(C:\emacs\HEAD\bin\emacs.exe)
Loading encoded-kb...done
user-init-file: "c:/home/.emacs.elc"
I've been struggling to find a clear wording to explain it. Suggestions
welcome.