The full explanation of Eliminate render-blocking resources
mentions:
We wouldn't put JS or CSS code where it isn't necessary to. We put a very small amount of JS in the header because it needs to be available at the start of the document.
The CSS is where it is because you really wouldn't want your users to be using a site where the CSS is deferred to the footer. Your pages would look terrible until almost everything had finished loading.