Какую версию php вы используете? В некоторых старых версиях бесконечная (или очень глубокая) рекурсия вызывала переполнение стека, если я правильно помню. Сегодня вы получите более конкретное сообщение об ошибке («Максимальный уровень вложенности функции« 100 »достигнут, прерывание!»).
Вы упоминаете сессии как возможную причину; Вы храните сложные структуры данных в сессии? Сеансы сериализуются и не сериализуются между запросами, что, вероятно, может вызвать некоторые проблемы, если вы поместите в них слишком много вещей (хотя не уверен, что это слишком много). Может быть, вы могли бы уменьшить это?