It's more readable to the CPU too.
Deeply nested code, especially with many functions that are called once, is really horrible to debug.
Extract functions when you see obvious repetition, not just to appease some dogmatic abstraction goal. Incidentally, this also helps the CPU (cache locality).
Along the same lines, I'd rather have a directory with several dozen source files than several dozen nested directories that may contain only one or two files each.