Until you really have to understand what is going on, like when you need to fix a bug or refactor. Then suddenly you to deal with the overhead of holding the branches of 20 levels of indirection in your working memory.
Also, this assumes the people you're working with are great at naming things. Which, from my experience, is almost no one.
Your job as a programmer is being able to walk this ladder of indirection up and down until you find what you seek and fix/add/remove whatever.
You'll always be dealing with way more than 20 levels of indirection when programming, even with a "hello world" program. If adding two more levels of indirection makes your mental model break down, you might consider upgrading your environment/workflow a bit to support this.
Regarding naming I agree with you. Good names are really, really, really hard to come up with. Entire books have been written on how to name things. Doesn't excuse us from trying though, the only way we can get better is by doing.
There’s no difference between module and function when you see that.
What the npm ecosystem is doing is a completely different thing.