JavaScriptのAsync/Awaitの仕様を数年前に見たときからなにか違和感を感じていたのだが、以下の記事で改めて全体を見通した時にその違和感の元に気づいた。
【初心者向け】JavaScriptの非同期処理を理解する callback、Promiseそしてasync/awaitへ - Qiita
Promiseの結果を取得するためにawaitが必要なことは直感的にわかる。 問題はasyncだ。これは単に返り値がPromiseであることを示すマーカーであり、返り値の型を明示する必要がないJavaScriptの思想とはそぐわない気がする。 これは例えばPythonのyieldとよく似ている。yieldは返り値の型をGeneratorにするが、その関数へasyncのような修飾子をつけることはない。
幸いにも疑問点に気づけば回答はネットに転がっていた。
どうやらawaitが予約後でなかったことと、parserの解析が簡単であることからasyncが用いられているようだ。 その理由に納得はしないものの、とりあえずの回答が得られたのはよかった。