This. The key to using Emacs well is to start with something fairly basic. Whenever you find some behavior that annoys you, take a few minutes to figure out how to fix it once and for all in your config. After a few years you will end up with a giant mess of a config that makes Emacs behave almost exactly the way you want, which you can copy over to any machine where you do serious work. You will also be able to get basic work done in a vanilla `/usr/bin/emacs`.
FWIW, after several years of zsh, I've been mostly happy with a stock fish in a terminal. It's way less broken by default than either zsh or (ugh) eshell.
I've been using basically that config ever since.
When I first started using zsh I went down the road of writing custom completion functions, but pretty quickly discovered that they just didn't pay off in the long run and stopped doing it. My shell absolutely doesn't take 5s+ to open up either, it's pretty much instantaneous.
In bad news, it appears Ubuntu no longer ships the manpages for zsh and instead ships info pages. Barf.
I actually find it valuable to nuke my bashrc customisations every few years and reevaluate. Assumptions and practices entrenched in those customisations can be anti-patterns or counterproductive.
Aren't you already doing that when you load up a vanilla zsh? Its just that that "somebody else" was the guy that wrote the tool. In either case, you still will want to tweak it to get exactly what you want.
However, in one of the cases, the thing you start out with is 0 features, and an extra week of work doing the same thing that thousands of people have done exactly the same before you. Only after that do you get to making it really "custom"