As you noted, this broke a bunch of existing use cases. It is infuriating.
Some softwares do intentionally ignore the default and turn they into emoji (discord for example), but that is a software thing.
And also, white and black rendering can be forced with variant selector if you absolutely don't want them to be emoji. (again, if software don't mess them up intentionally)
See also: https://en.m.wikipedia.org/wiki/Variation_Selectors_(Unicode...
BTW, windows used to have a bug that its emoji keyboard outputs arrow without variant selector, so it is not even a emoji when displays on windows, but it is now fixed. Proper selector (0xfe0f) have been pretended to the character.
What do you see here? https://qaz.wtf/u/show.cgi?show=15%3A%E2%86%94%EF%B8%8E+16%3...
Edit:
I think you're stuck with the emoji arrow for that font: neither U+2194 ↔ LEFT RIGHT ARROW nor U+2B0C ⬌ LEFT RIGHT BLACK ARROW have any defined variation sequences. ⇔ and ⟺ are probably text-style, but you can't change existing content.
Hmm… U+2192 → RIGHTWARDS ARROW doesn't vary either, but U+27A1 BLACK RIGHTWARDS ARROW does: https://qaz.wtf/u/show.cgi?show=15%3A%E2%86%92%EF%B8%8E+16%3...
…and as the only one of the four in the Dingbats block, is stripped by HN.