Стоит ли хранить зашифрованные данные пользователя в Local/Session Storage на клиенте?
Это просто идеальная иллюстрация к известному высказыванию Дональда Кнута "Преждевременная оптимизация - корень всех зол".
Сначала высасываем из пальца проблему: "тратится время на обращение к бд". Сколько там его тратится, тратится ли вообще, замедляет ли это систему, является ли вообще это проблемой - все эти вопросы нам неинтересны. Мы хотим грудью на амбразуру, стать героем и получить медальку. 
После этого начинаем проблему решать. 
Значит, чтобы сэкономить время на запросе к базе, которая обычно лежит локально и обычное обращение занимает микросекуны, мы решаем закэшировать данные на клиенте. Который может быть в тысяче километров, а пинг в сотни миллисекунд - не редкость. И вот мы решаем что клиент будет с каждым запросом отправлять массив данных. Причем таких данных, которые на сервере и так. есть. Гениально!Стоит ли так делать и почему;
не стоит потому что не надо высасывать проблемы из пальца.Какой будет прирост производительности
ОтрицательныйКак Вы решаете подобные вопросы.
МЫ ИХ НЕ РЕШАЕМ. 
Мы решаем реальные проблемы, объективно существующие. 
А воображаемые проблемы высосанные из пальца решать не следует.
Вот основные причины.
https://habr.com/ru/post/349164/
https://habr.com/ru/post/143259/
В общем храните в сторадже некритичную информацию, даже можете хранить роль в системе, если ваш фронтэнд предполагает разное поведение для разных ролей, но единственное чему можно доверять это идентификатор сессии в паре с ip. Все остальное доставайте на сервере. Если будет проседать, то поставьте redis для кэширования