その論調何度か聞くけど、別にfetch自体はまず今の仕様のPromiseを返すのでおかしくないと思うけどな
だってまずはヘッダを取得して、そこから更に何をするかとなるのが自然だから、そこまでは普通
fetchが出すResponseがReadableStreamを返す仕組みなのも苦労とかじゃなくてごく自然
ただReadableStream自体は微妙というかObservableであったほうが良いとは思う

そしてキャンセルはあるべきだけど、なぜか皆Promiseに付けろと思うけどそれは間違い
実際はPromiseに生えてたら凄い使いにくいし、Promiseの概念上分かりにくことになるのは考えたら分かる
だから、.cancelの提案なんてない。代わりにCancelToken型の用に仕組みが分離してあるものが提案されている
これならObservableにも使えるしずっと筋が良い