1. Только в том случае, если вам необходим этот адрес для его дальнейшего использования, потому как валидация в интернет-магазинах у нас, как правило, происходит по телефонному звонку — что позволяет удостовериться в наличии пользователя и заказа (почти 100%). По сути, адрес можно подтвердить и уже после работы с интернет-магазином и за это в ответ дать сладких плюшек каких-нибудь, а потом присылать рассылки с новыми поступления по направлениям которые ему интересны.
2. Есть смысл чекбокса по дефолту включенного, но если человек не захочет — он просто снимет галочку. Многие не продвинутые пользователи сейчас об этом не задумываются, приняв по дефолту то, что сайт их запоминает. А ещё рекомендую пробежаться по популярным сервисам типа однокласснки, вконтакт и т.п. и посмотеть как у них и не отсупать от этого — схожесть в визуальном плане и поведении стандартных наборов элементов управления является одним из озносных параметров дружественного интерфейса.
3. Рекомендовал бы привязаться не только к имени пользователя (или вобще НЕ к нему), а к данным браузера — имя пользователя то у сессии всегда одно и то же, а вот если к данным браузера привязаться, то утащив куки с сессией злодею надо будет подтасовывать и все идентификационные данные браузера.
4. По идее сессия и нужна для того, чтобы не лазить каждый раз за проверкой. Сейчас у вас бессмыслица — зачем проверять тот ли логин с паролем в базе из сессии, если в сессию вы сами их и положили? Каким образом они могут отличаться? Пользователю недоступно изменение данных сессии, это делает ваш скрипт.