How can I compare already imported Fonts with the loaded filepath?
Instead of using the bpy.fonts.open(... operator you can use the load() command for Font Datablocks which has a check_existing property built in, which should do exactly what you want:

bpy.data.fonts.load(filepath=fontb, check_existing=True)


When check_existing is set to True if a font datablock already exists in the blend file from that path then it won't be loaded, otherwise it will.

For more information on why it is generally better avoid bpy.ops commands read here:

Why avoid bpy.ops?