Lazy loading scripts is a very good idea, because Javascript should be a progressive enhancement and not mandatory.
I know that's old school, but I still believe in that vision of the Web.
Jake Archibald tried this in 2013 (https://www.html5rocks.com/en/tutorials/speed/script-loading/) and kinda resigned "That. At the end of the body element.".
Much has changed since then and the programmatic way of loading the scripts as async works now. (https://www.html5rocks.com/en/tutorials/speed/script-loading/#toc-dom-rescue):