Hmm, après le gtk_tree_model_get, tu récupères un pointeur sur une zone de mémoire qui a été allouée et qu'il faut que tu libères toi-même. Le fait que la libération de la mémoire soit à ta charge implique que la zone mémoire allouée "t'appartient", ie tu peux la garder en vie (ne pas la désallouer) aussi longtemps que tu veux. Un pointeur, c'est juste un moyen d'accéder à cette donnée, le fait que ta variable de type pointeur ne soit plus valide (ie variable locale hors du bloc où elle est définie) ne change rien quant aux possibilités d'accéder à cette zone mémoire.
Tout ça pour dire que dans ton cas, si tu stockes un pointeur vers la zone mémoire que gtk_tree_model_get t'asattribuée dans ta glist, la zone mémoire et le pointeur que tu as stocké resteront valides aussi longtemps que tu veux. Donc en gros, tu n'as "rien à faire" supprimer les g_free (pour les remettre au moment de la destruction de la liste) devrait être suffisant.
C'est une tentative d'expliquer ce que je pense que tu as mal compris, je suis peut être très obscur ou à côté de la plaque, n'hésite pas à poser d'autres questions pour bien comprendre ce qu'il faut faire dans ce cas

(c'est important à mon avis pour bien comprendre les pointeurs)
Partager