I find that that nesting functions can make code more readable, and manageable, just like indenting can. However, there is a performance impact due to the reloading each nested function each time the outer function is called (see these Q's on Stack Overflow What is the performance overhead of nested functions? Is there an overhead when nesting functions in Python?).
Would it be possible to avoid this overhead by using a decorator or some other trick to avoid the issue?