Since every time a web browser requests a page, we are almost certain that there are .css and .js files to be sent as well. Why do we wait for the browser to parse the DOM and discover those files before issuing a request for the CSS and JS files? The server has the HTML files and knows all the links to other resources. Why doesn't the server say "Hei, you want foo.html? here you go, but you would need also foo.js and foo.css"? Has this been considered? What are the drawbacks of this solution?
It is not the browser, it a server implementation. Let's say IIS or Apache, pre-scans the html and discovers all the CSS and JS include in each specific html page.