And what if there is no screen (ib_FirstScreen == 0) or if the screen you read the rastport from closes? Or if the font in question is flushed while you use it?
Anyway, if you insist: graphics.library base gb_DefaultFont has the current default screen font. It still doesn't gurantee a lock on it, so you should copy parameters from it withint Forbid() and call OpenFont(). Only then you're guaranteed to have valid lock on it.
System Font is trickier, basically one bulletproof way to get it is to read ENV:Sys/Font.prefs using iffparse.library. The data is multiple struct FontPrefs with system font prefs having fp_Type FP_SYSFONT.