Spec issue: https://github.com/tabatkins/specs/issues/69
Tentative resolution: when font-display is changed, either via CSSOM or removing/re-inserting a rule, the UA must re-run the font-display logic.
Exemplar Scenario:
1. initial @font-face rule with font-display: optional
2. web font is not readily available
3. the UA downloads the web font for a future use
4. the web font is downloaded but not used due to font-display: optional
5. font-display is touched (either via CSSOM or by removing and re-inserting a font-face rule)
6. the UA re-runs the logic (even if font-display wasn't actually modified*)
*: this specific aspect is tentative (discussion on-going in the spec bug).
Comment 1 by bugdroid1@chromium.org
, Dec 22 2017