Как вы упомянули в своих комментариях, вы создаете CookieManager в обработчике событий OnCreate, так что когда вызывается TForm1.webSession, CookieManager доступен, но в блоке finally TForm1.webSession вы освобождаете CookieManager, поэтому, как только вы оставить метод TForm1.webSession, CookieManager не хватает памяти. Итак, в следующий раз при вызове TForm1.webSession CookieManager будет иметь значение Nil, и для вас не будет сохранен файл cookie.
Есть еще два примечания, которые не связаны с вашим вопросом, но связаны с вашим исходным кодом:
1 - Ваш метод возвращает AnsiString, но вы используете Utf8ToWideString для присвоения значения переменной Result. Utf8ToWideString возвращает WideString, поэтому компилятор должен преобразовать WideString в AnsiString, и это не только снижает производительность, но также теряет символы Юникода в возвращаемой строке. Вы должны изменить сигнатуру вашего метода, чтобы она возвращала либо String (D2009 & D2010), либо WideString (более старые версии Delphi).
2 - Вам не нужно проверять, назначены ли SStream, AntiFreeze или HTTPCon в блоке finally. Вы можете просто вызвать метод Free или использовать процедуру FreeAndNil.
Привет