Оказалось, что оператор foreach в PHP 5 изменил свое поведение - теперь каждый вызов его устанавливает внутренний указатель массива на первый элемент, делать reset для повторного прохода массива явным образом не нужно. Это новшество позволят избавится от ненужных ресетов.