1) В общем сервер может принимать GET с BODY если он так устроен. (A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request)
2)
https://fetch.spec.whatwg.org/#request-class пункт 34 If either init["body"] exists and is non-null or inputBody is non-null, and request’s method is `GET` or `HEAD`, then throw a TypeError.
- Где обоснование того, что браузер не может посылать GET c body, почему они именно так сделали, я так и не нашел )
хотя тут пишут:
https://groups.google.com/a/chromium.../c/dJxBVhdg0G8
стандарт fetch обновился, так и сделали, кто там за стандартом стоит, и почему такой путь выбрали, нам не стоит знать ) ну или вот у них есть chat
https://whatwg.org/chat, можно там какого-нибудь кибердрочера спросить...