Скорее всего рендерить на клиенте, все таки в основе своей клиентские устройства сейчас достаточно мощные (что для ПК, что мобильных устройств не будет катастрофической нагрузки), а вот ресурсы сервера ограничены, если будет "мильон" клиентов, он и загнуться может.
React Native - практически нативное приложение получается, phonegap - не советую, если заказчик требовательный попадется, устанете пилить отработку событий (тачи, свайпы и т п).
Немного не по математике, но, первый преподаватель в университете по механике на первой лекции сказал, не дословно, но - никто вас не научит физике, но вы научитесь читать и понимать книги, а уже исходя из этого научитесь и физике и всему остальному. Думаю, что с математикой также.
Вероятно 2 поля лучше всего для этого, в одном значение, во втором единица измерения (год, век, тысячелетие и т п), поиск будет более сложным, но фильтры можно будет сделать любые.
Думается без глобальной перепайки роутера тут не обойтись, а если серьезно, если этот роутер не зарезанный роутер старшей модели то и смысла нет пробовать.
Единственное foreach будет и побыстрее и смотрится как-то получше. А так... лучше один запрос к базе, чем сотни.
В чем проблема с пагинацией, у вас же есть идекс, самый простой способ проерять