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 it's supposed to be 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).
No, there are no space at all.
Here's another screenshot.