Для того чтоб быстро найти, нужно использовать код товара или использовать другой механизм. В большинстве случаев 1-2 дня я считаю нормально.
Да, если категорий не много, то в кеше особого смысла нет, я когда искал себе магазин я сразу загружал 6 т. категорий и большинство движков и близко не справлялись с таким кол-вом, только opencart примерно на 20 секунд выводил их.
По ресайзу: да он один раз ресайзит картинки, но каждый раз проверяет есть ли картинка или нет, у меня на хостинге используется nginx который обрабатывает статику это немного снижает нагрузку на хостинг. А также картинка имеет постоянный url, поисковый трафик на картинки тоже полезен.
Плюс кеш храниться в одной папке, которая через время имеет огромный размер и имеет большое кол-во файлов и да зачем дублировать картинки - это только финансовая помощь хостеру, так как места фактически нужно 2 раза больше. :)
А вы посчитайте сколько будет файлов сессий, если сайт имеет например 10000 посещений в день + 20000 посещений различными ботами, цифры взял примерно. Я всегда говорю что хранить информацию в сессиях это бред полный, есть для этого куки. Было бы очень правильно если сессии создавались только в том случае если клиент авторизовался/сделал заказ, а не при первом посещении сайта.