В базу не лень лазить, в базу я все-равно лезу для проверки пользователся - есть ли он, не изменился ли его пароль. Считаю это обязательным, иначе в случаях каких-то изменений по пользователю со стороны администратора (вплоть до удаления) в случае хранения всего в сессии пользователь об этом и не знает до следующей аутентификации.
Хотя для определения - авторизован пользователь или нет, вообще в базу лазить не обязательно, достаточно ставить ему криптованную куку после авторизации. Так что если не хотите лазить в базу, то банальное $_SESSION['is_logged_in'] меняется на проверку куки.
В случае, если на странице нужно вывести "привет, Вася", я положу это Вася в куки или локальный сторадж браузера. Такой способ имеет один огромный плюс, причем часто используемый - такие страницы можно спокойно класть в статический кеш не забивая голову - авторизован ли пользователь или нет, ибо шапка авторизованного и нет в одном файле и переключается жаваскриптом.
А о кеше - это уже отдельных разговор. Если мне понадобится кешировать такую простую, но объемную информацию, но основную базу денормализовать не хочется - наверно будут какие-то nosql решения, но уж точно не по отдельному файлу на юзера.
Сессии хороши для начинающих. Для простых каких-то скриптиков. В некоторых отдельных случаях для кого-то...например, корзина посетителя, хотя, опять же, я кладу корзину в базу даже для неавторизованных - это дает больший простор для анализа.