Actually, the majority (the general public, the readers) don't know what a non-breaking or narrow non-breaking space is, they just want a space before
: ; ! ? » and after
« like we are supposed to write in French, whatever their device or browser is. Period.
And they see that even in iOS (the screenshots show above demonstrate that the punctuations are not "too near" from the characters before or after them, there's alreadyu the thin space inside each punctuation sign. these are legacy fonts anyway from Apple, and if you want finer typography, Apple recommands application authors to use better fonts, or users to setup their browser.
NBSP is not suitable as it is really too large for normal reading (remember they won't have to edit these UI texts, they just want to read it and without wasting screen space. NBSP is wrong in all French texts for ALL users; it was only a workaround before the encoding in Unicode 3.0. And NNBSP is kept for all scripts, except for the Mongolian vertical script where it is deprecated and replaced by MVS, NNBSP remaining valid however for punctuations even in Mongolian; and Mongolian does not use spaces as group separators for numbers).
We talk here about French only, and your screenshot does not demonstrate any problem: the extra spacing is present and visible along with normal French punctuations (but the same punctuations are ugly in non-standard uses of punctuations like sequences "::" or ":-;". And there's no problem at all for terminal monospaced fonts where these spaces are not needed and can safely become zero-width (and still remain fixed width, non-justifiable, non-breaking and narrower than regular spaces or figure spaces in all cases).
Measure the gap between the two glyphs between the letter and the following "?", compare it to the gap with the previous letter; it is LARGER (yes, there's extra padding inside the "?" in that font, so that NNBSP does not need to be visible with that font).
This is Apple's design of that font. No bug ! Adding a NBSP will just make the resultint text more ugly and not compliant to common typographic practices. And it will behave very bad for UI design (remember we are translating an UI), or in Monospaced environment (where NNBSP is also zero-width), e.g. on terminals on old typewriters (where no extra spacing was needed at all).
In other devices (Linux, Windows...) NNBSP is what is needed to get the same spacing, because gaps are NOT part of the OpenType design of standard punctuations.
(I bet that this Apple font is ugly for Swedish, where a ":" can appear in the middle of a word to attach suffixes, and that ":" is not cutting the sentence in two parts but may be Apple provided a Swedish tuning in that font to conditionally cancel that extra gap between two letters). Apple has very specific proprietary rendering engine that an do that with complex AAT rules in its proprietary fonts, instead of standard OpenType fonts).
Anyway, AAT is being deprecated by Apple in favor of OpenType, but legacy fonts for MacOS and iOS will keep their AAT tables for legacy compatiblity reasons. The Apple's renderer in its browser allow applications to drop the AAT rules and use only OpenType/TrueType rules (and in that case NNBSP will be distinctly displayed, and no gap will be added into OpenType/TrueType metrics, NNBSP will be non-zero width). These Apple tricks in its default legacy fonts are not used in Times (recommanded for text publishing, and also used normally by default on the web; Apple also offers other fonts now for web content and applications UI, where NNBSP is mapped or handled directly by the renderer without needing any extra mapping).
Did you try changing your default font instead of the proprietary legacy ones (that have also poor I18n support with limited coverage for Latin) ?