4.1.2 :init is evaluated before loading package

The :init section is evaluated just before the package is loaded. Note that the :init form is run unconditionally – even if the package happens to not exist on your system. You must therefore remember to restrict :init code to what would succeed either way; put the rest in the :config section. :init also always happens before package load, whether :config has been deferred or not.