In my functions.php, I have set a register_scripts() and load_scripts(), and hooked them to the 'init' action.
I have registered all the scripts to be loaded in the footer, in order to optimize page load.
Some of the scripts I've registered in register_scripts() are not enqueued in load_scripts() because I only want to load them when / if they are needed.
So for example, if the page being rendered includes the template part 'gallery.php', which needs 'jquery-gallery', I would like to enqueue it from that file, but only after the rest of the footer scripts have been loaded. I also need to do this with inline scripts.
Hope I explained myself well... If not please ask.