I would like to propose the following change, as a corollary to
previous changes to package initialization for Emacs 27:

| When `package-initialize' is first called, it acts as before; however,
| if it is called again, then it does nothing. This behavior can be
| overridden using a dynamically bound variable or an additional
| argument to `package-initialize'.

This change breaks backwards compatibility only in the following
case:

| Someone who already uses Emacs 27 intentionally calls
| `package-initialize' in their early init-file, then customizes
| `package-user-dir', then intentionally calls `package-initialize'
| again.

I am fairly confident that this use case has never been exercised by
anyone, so the change should be safe.

The benefit to making this change is that there is no need for people
to remove extraneous calls to `package-initialize' from their
init-file when upgrading from Emacs 26 to Emacs 27, and we may remove
the annoying warning introduced in [1] and discussed at [2].

If there are no objections, I would like to prepare a patch to
implement the change.

Best regards,
Radon Rosborough

[1]: https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=2db57579b08ac99c464b6d3698648b3167fc5d55
[2]: https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00626.html