在init.el开头调用(package-initialize)有什么问题?

文档是这么说的:

package-initialize is an interactive autoloaded compiled Lisp function
in ‘package.el’.

(package-initialize &optional NO-ACTIVATE)

Load Emacs Lisp packages, and activate them.
The variable ‘package-load-list’ controls which packages to load.
If optional arg NO-ACTIVATE is non-nil, don’t activate packages.
If ‘user-init-file’ does not mention ‘(package-initialize)’, add
it to the file.
If called as part of loading ‘user-init-file’, set
‘package-enable-at-startup’ to nil, to prevent accidentally
loading packages twice.
It is not necessary to adjust ‘load-path’ or ‘require’ the
individual packages after calling ‘package-initialize’ -- this is
taken care of by ‘package-initialize’.

调用 (package-initialize) 之后:

  • 加载 package-load-alist 所指定(默认是 '(all))的 packages。
  • 设置 package-enable-at-startup,防止 package 重复加载 // 如何验证?
  • 不必(不应?)修改 load-pathrequire 额外的 package // 没看懂。(package-initialize) 通常放在 init.el 顶层,后面修改 load-path 不是很正常吗?

比较确定的是,在使用 package- 系列函数(例如 (package-install 'dash)) 之前必需调用 (package-initialize)