I've found the rather useful How Packages work in Emacs 24, however, I'd like a definitive answer from an experienced user or a core developer as to which of these is actually preferred in the typical case on 24.4.
(add-hook 'after-init-hook ...) is the so-to-say brute-force approach to setting up customizations for packages. However,
eval-after-load and its more syntactically sugary
with-eval-after-load seem more appropriate for more dynamic and fine grained configuration that plays well with the gradual, separate and lazy loading of extensions.
Is my understand correct? What else should I keep in mind?