Guess bringing the string into another part of memory would be redundant if we have address to where it is already stored in memory.
That pointer will be overwritten when the next file is accessed. If you are creating a list, you need to copy the data.
To exemplify my ignorance a little further I have to ask the question, does the name() returned pointer refer to an address on the SD card or one that has been loaded into ram already?
SRAM.
In either case how would I go about addressing it in my function?
I see that you've figured that out.
In that case can I just point to the next byte after the pointers address to get the second letter in the array?
Yes. The index is an offset added to the address that the pointer points to to get to where the real data is.
Creates a pointer (physical address to the first byte of the array) that can be accessed like an array
Yes. Perhaps the above comment explains why that works. There is a very close association between arrays and pointers. Once you understand that, and that you must actually make a pointer to to somewhere, your there with understanding pointers.
Next step: Pointers to pointers and pointers to functions.