To quote the help:
*gf* *E446* *E447*
[count]gf Edit the file whose name is under or after the cursor.
Mnemonic: "goto file".
Uses the 'isfname' option to find out which characters
are supposed to be in a file name. Trailing
punctuation characters ".,:;!" are ignored. Escaped
If there really isn't a simple query to find the information then we'll have to brute-force it...
Two key behaviors are described in :h 'guifonts':
[If a list of fonts is given] the first valid font is used.
[If a single font is given and] the font cannot be found you will get an error message.
That suggests something like this function: