This seems like something the Java maintainers ought to be able to fix. But in practice that ain't gonna happen, so yes, unfortunately it's up to you.
This times infinity. I have filed multiple bug reports, and there's actually an old post here where I specify code which specifically circumvents this exact problem with seteps to reproduce and correct... but the tickets are silently closed.
Solution if you're interested:
https://coderanch.com/t/694808/java/Font-Ligatures-Swing-Display-Objects
As far as ligatures go, I know of absolutely no reason why when you present a ligature Unicode code point that Java would not render it as a ligature.
I'm not sure what the underlying cause is, but the workaround is linked above. When I load it in any way other than pulling the binary directly and manually turning the ligatures on, it fails to load them properly in many fonts. This is a bug in Java that I've been reporting without avail to Oracle for years, unfortunately.
Does anyone happen to know how to request the virtual file locations from Windows? I can make a workaround window that searches for the actual files and presents users with a custom menu... but that would be sloppy.