1) Так делать нормально до тех пор, пока это удовлетворяет наши требования по быстродействию.
Если требования не оговорены - то "пока сайт визуально не тормозит".
А критерий "торможения" зависит от нескольких факторов:
- Объем передаваемых данных.
- Качество интернета пользователей. Если пользователи работают с 3G в полях - логично, что требования будут выше.
- Как мы отображаем данные в процессе загрузки. Если пользователь получает на экран что-то полезное уже после ответа 1-го запроса - хорошо.
- От того, как быстро наш сервер обрабатывает те или иные запросы. Лучше быстро отдать/отобразить какие-то основные данные, а потом догружать дополнительные (если это долго).
2) Подход REST с разделением сущностей по эндпоинтам не очень-то способствует сокращению количества запросов.
Можно, конечно, добавлять связанные сущности в ответы... Но там, где они не нужны - мы получаем overfetching.
Можно посмотреть в сторону graphql для решения этой задачи. Но т.к. вопрос "стоит ли переживать" - видимо, пока не стоит.
Ну или отходить от концепции REST в угоду оптимизации.