I am not sure if this is what you are looking for and if it works in spacemacs. I am using standard emacs and desktop-save-mode
.
It is configurable with several options. I am using currntly this:
(setq desktop-dirname "~/.emacs.d/desktop/"
desktop-base-file-name "emacs.desktop"
desktop-base-lock-name "lock"
desktop-path (list desktop-dirname)
desktop-save t
desktop-files-not-to-save "^$" ;reload tramp paths
desktop-load-locked-desktop nil
desktop-auto-save-timeout 30)
(desktop-save-mode 1)
You can also exclude buffers not to save, for example
(add-to-list 'desktop-modes-not-to-save 'Info-mode)
(add-to-list 'desktop-modes-not-to-save 'dired-mode)
(add-to-list 'desktop-modes-not-to-save 'fundamental-mode)
(add-to-list 'desktop-modes-not-to-save 'info-lookup-mode)
You can check the emacs manual for this here
Hope this helps.
EDIT:
I think I understand now what you want. At least it inspired me to experiment a little bit. I am a newbie in ELISP and maybe someone here can help improve this, but I just tried a small function looking like this, opening all buffers in recentf-list:
(defun open-all-recent()
(let* ((rlist (copy-sequence recentf-list)))
(while rlist
(find-file (car rlist))
(setq rlist (cdr rlist))))
desktop-save-mode is not always feasible and I am thinking, if it would not be better to think about your idea.