https://developer.yahoo.com/performance/rules.html
Касательно js в конце: для того, что бы не грузить их вначале, а дать возможность браузеру сначала отрендерить важную для пользователя информацию
В принципе, аналогично атрибуту defered
Гугл говорит иначе - подключайте джаваскрипт именно в тех местах, где он нужен (что-то вроде инлайна)