Один или несколько серверов для бэкенда, фронтенда и базы данных?
насколько целесообразно бэкенд, фронтенд и бд распределить на разных машинах?Если одна машина не справляется, или есть другие причины - то очень целесообразно.

Иначе нецелесообразно.

Как в таких ситуациях чаще всего поступают и на что лучше ориентироваться?Запускают проект на том, что есть в наличии, и не сильно бъет по карману. А потом в зависимости от нагрузки подбирают железо и архитектуру.
Ориентироваться, конечно, на нагрузку.
Раз это Django и React, то это веб приложение.
Фронт - это браузер конечного пользователя на компьютере пользователя.
Бэкэнд и БД можно для начала разместить на одном сервере. Если не будет справляться - разнесете.