Потому что это анти-паттерн.
Http-вызовы могут всегда терпеть неудачу (как и все, что происходит по сети - это недоступно для вас, как программиста), и если они терпят неудачу, все ваше приложение терпит неудачу, не обеспечивая откат или, по крайней мере, визуальное уведомление пользователя о том, что что-то неправильно.
И даже если они не выходят из строя, им может потребоваться много времени, в течение которого ваше приложение не должно выглядеть замороженным, поэтому пользователь не закроет его или не бросит телефон к стене.
Если вы действительно хотите сделать вещи синхронными, вы можете использовать для этого несколько операторов RXJS; см:
Как я могу заставить одну наблюдаемую последовательность RxJS ждать, пока другая завершит свою работу, перед излучением?