Hallo,
Da steht es ja von hochoffizieller Seite noch mal schwarz auf weiß.
Eher äußerst implizit.
Auf das Verhalten bei externen Scripts geht HTML nicht ausdrücklich ein. Der erste zitierte Abschnitt handelt davon, wie document.write zu handhaben ist. Erst beim defer-Zitat wird implizit gesagt, dass ohne defer das Parsing angehalten werden muss - aber auch nur wegen document.write. Kein Wort über externe Scripts.
Nun ging es bei deiner Frage weniger um das Verhalten bei document.write. Alleinig interessant ist deshalb die Aussage, dass Scripte auf jeden Fall in der Reihenfolge ausgeführt werden müssen, wie sie im Dokument vorkommen. Was externe Scripte betrifft, so gibt es zwar keine ausdrückliche Ausnahmeregelung, aber auch keinen ausdrücklichen Hinweis, dass erst die externe Ressource geladen und ausgeführt werden muss.
Gerade das defer-Attribut ist hoffnungslos unterspezifiziert (und der IE als einziger Browser, der es implementiert, implementiert es m.W. auch gänzlich anders, also falsch im Sinne von HTML 4). Die Zitate sagen eben nicht, was in einem solchen Fall zu tun ist:
extern.js: variable_aus_externem_script = true;
<script defer="defer" src="extern.js" type="text/javascript"></script>
<script type="text/javascript">
window.alert(variable_aus_externem_script);
</script>
Defer heißt nur, dass extern.js keine Ausgabe machen wird, also der Parser nicht mit document.write-Ausgaben rechnen muss. Das ist im Beispiel auch völlig korrekt, schließlich mach extern.js keine solchen Ausgaben - das sagt aber nichts darüber aus, ob andere, folgende Scripte im Dokument von der Ausführung von extern.js abhängen; also extern.js auf jeden Fall zuerst geladen und ausgeführt werden muss.
Was HTML 5 zu dieser Frage spezifiziert, würde ich eher als "schwarz auf weiß" bezeichnen.
Mathias