Yeah, without knowing more about the implementation of emoji in the keyboard, it's tough to know why this is the case — it could be a bug, or intentional for some reason. We can only guess.
Yes, this is always the case. UTS#51 Section 4 Presentation Style goes into a lot more detail on presentation, but to quote:
presentation style is never guaranteed
Unicode presentation is effectively a request to display characters in a certain way, but that request may be ignored, or it might be impossible to honor. For instance, although U+1F6F3 PASSENGER SHIP defaults to a text presentation, in order to display as such, some font in use on your system needs to be able to render the character as text. On my system running macOS Monterey 12.3.1, there is no font which has a textual glyph for this character... But Apple Color Emoji does have a glyph, so the system falls back to that representation:
(Note how Font Variation only shows the Apple Color Emoji font with a glyph.)
This is opposed to a character like U+2602 UMBRELLA ☂, which is also unqualified on its own without a variation selector, but for which my system does have various glyphs:
So even with and without explicit variation selectors, you are at the whim of the rendering system in use, and the fonts it has available at the time of rendering. These Unicode properties are effectively advisories on how to treat the text, but they may also be ignored depending on context, or even impossible to fulfill.
Edit: just for comparison's sake, on my Windows 10 machine, I do see a difference between the two representations for this character:
(I really scaled up the font size so if you open the image at native size you'll see a lot more detail on the textual ship!)