If you don't want to occupy (atoms-family) base memory, then place sub functions inside main one... Otherwise, if you have subs that act like general sub functions and can be connected with many main (c:xxx) functions and you have no problems with building huge (atoms-family), then code it for acaddoc.lsp for auto load and then they'll be available all the time you need them... But IMHO, such functions would be then general and if you want to have independently working (c:xxx) function it's good to place them inside main - you can see and search for calls between them is single *.lsp file - no need for checking acaddoc.lsp or open subs as *.lsp files that are auto loaded with acaddoc.lsp through (load "*.lsp") function...