Кешировать должен сервер, а фронт запрашивать, пускай и одно и тоже.
Либо запросить 1, а после просто проверять, если данных в переменной нет, запросить.
localstorage это вам не жёсткий диск на 1тб. Там скудное кол-во данных может быть и держать там некую базу глупо, к тому же, геморнее вносить туда изменения, если нужно поменять 1 элемент.
К тому же, а если данные на сервере изменились, фронт как должен это понять? На мой взгляд глупое решение, которое ни к чему хорошему не приведёт.