It is also easier to write a test for a smaller function.
Having the implementation in many smaller functions also makes the code more readable if their naming is good.
Maybe so. But you need several of the very small functions to do the same work as the moderately sized function, and those several very small functions have to interact with each other. So did the total chance of a bug go up or down? It's not clear, but I lean toward the one moderately-sized function being more likely to be bug-free.
The higher level function is then easy to read. The lower level functions get a name that can be checked more easily against an implementation if needed.
After all, software development is still a engineering process, in which personal coding style is far less important.
People tend to take the length guidelines far too seriously though. Instead it requires thought and experience. The main Principe I try to follow is make it readable, it doesn't matter how it's written or if you've decided to use a goto in there, so long as it is one of the more readable alternatives.