Вот как раз ради производительности лучше иметь много ручек, возвращающих строго то, что запрошено. А вот такие ручки, которые возвращают всё, до чего дотянутся, обычно делаются из-за лени
Нет, не из-за лени. К примеру, у нас огромное количество статистики на главной странице. Чтобы клиент не дёргал 40 методов API, он дёргает один, который возвращает один ответ. Внутри бек просто собирает из сервисов этот ответ и это не выглядит как дублирование кода В результате главная страница грузится практически моментально.
Подробнее эта статистика отображается на других компонентах и там используются другие контроллеры. Хотя можно всё это сделать универсальным и собрать API так, чтобы фронт дёргал просто 1000 ручек, чтобы собрать всю нужную статистику. Но у нас компонентный подход.