Hallo,
Die großen machen es leider so vor. http://fortawesome.github.io/Font-Awesome/
Solche wiederverwendbaren Bibliotheken arbeiten aus guten Gründen so. Sie zielen darauf ab, dass man nur die vorgefertige CSS-Datei und für jedes Icon ein HTML-Snippet einbinden muss. Würden sie hingegen Klassen anbieten, die die Elemente direkt bekommen (z.B. <a href="" class="icon icon-smiley icon-before">), so wären Konflikte vorprogrammiert. Styles des Elements würden die für das Icon nötigen Styles überschreiben. Oder anders herum: Icon-Styles würden :before/:after-Styles des Elements überschreiben. Das kommt in der Praxis ständig vor.
Es ist nur folgerichtig, was Font Awesome da tut. Es ist nicht die sauberste Lösung, sondern die einfachste und robusteste. Natürlich lässt sich das besser machen. Spezifische Lösungen sind immer kürzerer und sauberer, aber sie kosten. Alle Beteiligten müssen genau wissen, was sie tun, alle Beteiligten müssen vorsichtig sein und Konflikte vermeiden. Aus Sicht der Software-Entwicklung sind solche fragilen Lösungen immer problematisch.
Mathias