и? так в этом же фишка, чтобы распараллелить
Нет, далеко не всегда надо распараллелить. Во многих случаях ничем не ограниченное автоматическое распараллеливание просто приведёт к инконсистентному состоянию программы. Суть IO тут в том, что мы свои намерения относительно его порядка исполнения задаём явно связывая несколько IO в один IO нужным нам комбинатором