Et là j'apprends qu'OpenType (polices de caractères TTF/OTF) supporte la spécification COLRv1 depuis la version 1.9. Ce qui veut dire des polices de caractères EN COULEURS. Je parle là de plusieurs couleurs à l'intérieur des caractères (dégradés, etc.) et plus seulement une couleur uniforme.
Si vous utilisez une police supportant COLRv1, vous pouvez donc faire varier les couleurs (et d'autres caractéristiques de la police) en CSS (donc plus seulement gras/italique).
Google vient d'ailleurs de livrer ses premières polices supportant COLRv1, ce qui donne un bon exemple des possibilités :
https://material.io/blog/color-fonts-are-here
Non seulement on peut faire varier les couleurs et dégradés, mais aussi l'épaisseur.
Il y a encore des limites à ce qu'on peut faire (par exemple pas de transition de palette possible en CSS sur ces polices), et le support dans les navigateurs n'est pas encore total :
https://caniuse.com/colr-v1 (C'est ok pour Chrome, Edge, Opera mais pas Firefox, et le support sur mobile est très incomplet).
En attendant, SVG est sans doute une meilleure solution si vous voulez faire des choses plus avancées.