Does this tag use memory that needs to be freed somewhere sometime? Or is this handled internally by the gadget?
Without much info on it I would say it should free the memory itself. Unless you changed the pointer.
But take a look at GFILE_FREELIST. It seems a little complicated but you need to set up a messy looking gfileFreeList first. Before you can use the class. So in the end the onus is on you to free this list.
No, the returned buffer is internal to the gadget and should not be freed by the application (the same goes for GETFILE_File and GETFILE_Drawer).
You can also just use IDoMethod() (the varargs version of IDoMethodA()) like so:
IIntuition->IDoMethod(getfile, GFILE_FREELIST, filelist);