Для чего нужен middleware?
Почему нельзя? можно. Но вы должны понимать что как только компонент размонтируется вы потеряете данные. По этому делают запросы обычно в redux actions  и хранят полученные данные в redux. Таких образом пока у вас есть удобный доступ к полученным данным из разных компонентов + вам не надо делать повторно запрос потому что они у вас уже лежат в redux. 
А middleware это просто прослойка между диспатчем и моментом когда данные будут положены в редукс. В этот момент вы можете например навесить еще какую то логику. Например проверить токен сервера на то что он еще не истек и если истек выкинуть на авторизацию или сделать запрос на обновление.
Например: есть конвейер, по которому движется пальто. На конвейере работают Зина и Людмила. Зина пришивает пуговку, Людмила прикладывает бирку. Внезапно, появляется middleware Лена, встает между Зиной и Людмилой и красит пуговку в хипстерский модный цвет. Так как Лена после покраски не уносит пальто с собой, а передает дальше, то Людмила как ни в чем не бывало приделывает бирку и пальто готово. Только теперь оно хипстерское. Усиленное. Читай тут