1. Данные сессии — временные, отталкивайтесь от этого.
2. В вопросе, судя по всему, речь идет о постоянных данных — их хранить в профилях пользователей в базе.
3. Если не хотите каждый раз дергать базу, хотя в этом нет ничего плохого, делайте кеширование.
4. В PHP есть встроенный механизм сессий, свой изобретать не нужно. Бекэнды могут быть разные — файлы, БД, memcached, можно реализовать свой.