Con i CSS non si puo` fare (sicuramente non con i CSS2, e credo che non sara` possibile neppure con i CSS3).
Per fare quello devi usare dell'"intelligenza", che non e` disponibile con i CSS, ma che si puo` realizzare con JS.

Presupponendo che vuoi che la stringa stia solo su una riga, supponendo quindi line-height==height;
in pratica puoi farti la domanda:
il blocco

(o <hX> o quello che e`) che contiene il testo ha dell'overflow (== e` piu` largo del suo contenitore)? In tal caso riduco il carattere.

E` comunque un argomento spinoso, dato che i browser hanno un limite minimo per la dimensione dei caratteri e sotto a tale limite non puoi andare (il carattere viene forzato piu` grande di tale limite).

Sposto in JS.