For function wordpress_enqueue_script, in WordPress codex page(, it's clearly written:

Note: This function won't work if it's known as from the wordpress_mind action, because the tags are output before wordpress_mind runs. Rather, call wordpress_enqueue_script from an init action function (to load it in most pages), template_redirect (to load it in public places pages only), or admin_print_scripts (for admin pages only). Don't use wordpress_print_scripts (see for a reason).

Don't use wordpress_print_scripts action is exactly what I wish to highlight, but perform a simple search on "How you can include Javscript in WordPress". You'll find the majority of good examples are utilizing wordpress_print_scripts action to call wordpress_enqueue_script. Also it appears like everybody is alright by using it.

So shall we be held missing or misunderstanding something here?

Yeah, I had the experience plenty of occasions. Rapid response is all individuals men that print script demands are wrong or as some people suggest it's faster to not use wordpress_enqueue_script but to load everything dynamically with Modernizr.load (yesnope.js) or other js loader lib.

My recommendation is always to stick to wordpress_enqueue_script because the best practice, but when you're developing styles for mobile, or else you are very concerned about speed and never bloatedness your browser with demands, I truly recommend to load everything dynamically having a single js file (that you might call with wordpress_enqueue_script). Even consider inlining everything out and never loading jQuery but zepto.js approximately.

Many designers do that terrible practice of loading everything printed, not just bad taste, but terrible for experienced theme designers I would say :S

For instance thematic and many other blank styles depend about this practices which truncates development speed with childthemes.

If you're not sure about wordpress_enqueue_script just provide the wordpress codex a read. It's completely recorded.