У тебя же в коде ты создаешь локальную переменную-указатель FCharacterPreset* ,сам так часто делал в коде, проблем это не вызывало, вот и удивился.
Локальную да, я понимаю, но я же по сути мог в этом месте сделать new ... И сборчик мусора потерял бы одну структуру, как то не понятно, то нельзя (ради вашей безопасности же), то можно