I have this problem using recentf: the list seems to be updated only for the current session; when I close and restart the Emacs client, the last visited files are in the list; if I close Emacs and kill the daemon, when I restart Emacs the last visited files are not in the list.
Here is the value of the variable
kill-emacs-hook is a variable defined in ‘C source code’.
Its value is
(company-clang-set-prefix recentf-save-list smex-save-to-file bookmark-exit-hook-internal ido-kill-emacs-hook flycheck-global-teardown org-babel-remove-temporary-directory)