There are several different reasons for this ... first, some browsers will load dynamically added script tags asynchronously. Secondly, the script can handle when the landing page is http versus https to avoid content errors.
As joe said, head.js is useful ... s is the separation of the domains of your own scripts. For your own resources, the script is best to create your site with as little js as possible at the top (html5shiv and browser tags / js for css) ... then your js in the old old style <script src = ""> before the closing body element.
Browsers first load the required page content, and this will later give the fastest perceived load in non-blocking mode. Modulating your scripts for the sequence of operations and initializing on the page just what you need to run, makes better use of caching.
Store your script resources in files under or less than 6 js. and close to the same size as each other, as reasonable.
The chest book, Even Faster Websites, is a great read.
Tracker1
source share