Some Lisp programmers advocate keeping code mainly into one file, following the concepts of Literate Programming in the Large, (note: the video is more about the method than Axiom, an open source computer algebra system written mostly in Lisp).
There is also a tendency to split a long elisp file into related files.
Some believe this may be a matter of personal opinion. Doing some research, it seems, at least in Lisp, such issue is also a matter of proper coding style and proper code management.
Quite a few experienced Lisp programmers spent considerable time about this subject. There are whole books and online documents that speaks about style (for example, Molly Miller's "LISP: Style and Design").
I was wondering what approach in managing code is advisable when dealing with large elisp (and lisp) files?
Based on on that, which special tools (ie, unique to elisp programming) does Emacs offer to navigate either a long elisp file, or a collection of related lisp files?
I am especially interested in less widely know tools. For example, there is code out there to help unbinding things or nuke and reevaluate an elisp buffer. It seems that kind of tools could be quite useful, but they would probably not make much sense for very large files?
Bonus question: Is there a criteria, like grouping into logical units, or other quantifiable values (like: LOC, number of functions, etc) that can help in deciding?