Is `with-eval-after-load’ Always A Bad Idea?

No,

It usually is.

My own experience has only been to use it when I don’t understand the load order and want to “just make it work”. Very pragmatic and in the long run it has to change.

According to the manual:

Normally, well-designed Lisp programs should not use with-eval-after-load.

Its great to be normal.

Addendum: 2019-09-09

Thank you Phil for pointing out the inaccuracy in this post. I’d written the wrong thing down and it totally changed the meaning of the post. The title had been “Is Are Load Hooks Always A Bad Idea?” and I changed it to “Is `with-eval-after-load’ Always A Bad Idea?”