Tl;dr? For ultimate control JavaScript is still the best option (obviously). Eg, responding to user settings or swapping multiple fonts simultaneously. But imho, the use of JavaScript in font loading has been mostly been made obsolete since the font-display: swap;
property. Time can be spent only once, don’t spend it on complexity.