Где правильней делать постраничный вывод и фильтры списков — back-end или front-end?
По хорошему, это делается так:
Фронт-енд отвечает только за показ страницы по заданым фильтрам
Все данные запрашиваются на бекенде в формате {
skip: %Пропущенные страницы% * %элементов на страницу%, 
limit: %элементов на страницу%, 
filers: [ваши фильтры]
}
Бекенд соответственно делает выборку согласно полученым фильтрам с учетом skip и limit (монга их умеет)
до 10000 записей я обрабатываю на фронте. Более 10 тыщ, на бэке. Это при условии, что я заранее точно знаю лимит записей в проекте. Если лимит не знать (база комментов, юзеров), то на бэкенде делать.