I am wondering if there is any way to change the font family in SPO?
I see that its possible in SPFx for web parts (and possibly a hacky way to do it for the whole tenant) but is there a way to do it OOTB?
Short answer to your question is No.
There is no SharePoint out of the box settings for changing font-family on modern experience.
You can apply custom styles and colors using SharePoint site theming capabilities but you cannot change the font-family using it.
As you already know, you can inject/apply custom CSS using SPFx application customizer & change the font-family by overriding the default CSS (Not recommended by Microsoft).
We cannot through OOTB way to change the font family for the modern/new experience in SharePoint online.
You need to use SharePoint Framework extension application customizer and inject your custom css. You need to use specific CSS selectors to target the sections of the page that you want to change.
This article below shows how to inject an custom css, stored in your SharePoint styles library:
Or, else, you can check the following article which shows you how to use a custom scss file in SharePoint online placeholder and use the same method to import fonts from a shared location of google fonts api and use CSS selectors to use it in modern pages: