... beim Parsen von XML bzw. XHTML als XML gibt es kein "unten und oben" - ich wage zu behaupten, dass XHTML als application/xml oder application/xhtml+xml noch nicht tot ist und somit durchaus noch im Hinterkopf zu behalten ist.
Ob ich dann ein CSS-File und dann ein JavaScript-File einbinde oder umgekehrt dürfte egal sein, da der Client entscheidet, was er zuerst abholt, da ohnehin das komplette Dokument gelesen werden muss, bevor es geparst werden kann und nicht linear von oben nach unten gelesen wird.
Sorry, das ist Humbug!
Erst einmal ist Tag Soup Standard im Web. Das sind vermutlich 99,8% aller Anwendungsfälle. Scripts nach unten zu packen ist eine Performance-Empfehlung, die genau in diesen Fällen sinnvoll ist.
Auch ein XML-Parser hat einen Tokenizer, der Tokens ausspuckt, die bereits SAX-mäßig verarbeitet werden können. Parsing und XHTML-Verarbeitung erfolgt nicht erst, wenn das gesamte Dokument eingelesen ist! Eine solche Notwendigkeit besteht nicht, XML kann sequentiell eingelesen und verarbeitet werden. Sobald der Tokenizer ein <link rel="stylesheet" /> (im XHTML-Namensraum) emittiert, schickt der Browser einen Request, um das Stylesheet zu holen. Das wird er zumindest tun, wenn er sich für Performance und incremental rendering interessiert. Dasselbe gilt für <img />, </object>, </iframe>, </video>, </audio> und sonstige End-Tags, nach denen der Browser schon Requests senden kann, ohne wissen zu müssen, wie der XML-Input-Stream danach aussieht.
Das ist m.W. kein hartes Erfordernis irgendeines Standards. Aber es ist möglich, sinnvoll und offenbar Common Practise in allen Browsern. Bei HTML-Tag-Soup wie bei XHTML-als-XML. Ich sehe auch kein Grund, warum sich das ändern sollte.
Scripte sind übrigens noch einmal eine Besonderheit. Diese blocken gemäß XHTML5 den XML-Parser. Dies ist wiederum ein hartes Erfordernis des Standards - und ebenfalls Common Practise. Alle XHTML-fähigen Browser führen Scripte sofort aus und halten den XML-Parser an: Webkit, Opera, Gecko und sogar die heute erschienene IE9-Preview. Diese Scripte haben Zugriff auf ein unvollständiges DOM. Das DOM, was aus dem XML-Stream geparst wurde, der vor ihnen liegt. Auch das ist bei XML möglich.
Weil Scripte nicht nur den Tag-Soup- bzw. den HTML5-Parser, sondern auch den XML-Parser anhalten, macht »Place Javascript file at the bottom« durchaus auch für XHTML Sinn.
Mathias