Siento que la respuesta sea tan concisa, y por lo tanto ya nace viciada. Cuestión de tiempo disponible. Mis disculpas por ello.
En tu ejemplo, Furoya, actúas sobre el mismo elemento (el propio enlace), no sobre un tercero, que fue la premisa en la que siempre basé mi planteamiento.
Y al utilizar /:before/ nos aseguramos que las versiones anteriores a ie7 (incluido) no lo muestren.
Los enlaces, al menos en las últimas versiones de los distintos html o xhtml son considerados elementos inline, por lo tanto, no admiten algunas propiedades sin alterar esa naturaleza.
Cita: ...por lo tanto el hover también funciona sobre ella...
Claro, porque el :after/:before es una parte más del elemento sobre el que se declara.
Para poder manipular mejor el :after declárale /display: block/ (y si fuese necesario /position: absolute/) y podrás aplicarle márgenes, desplazamientos... aquello que necesites.
Y sobre el hosting gratis,lo siento, fue sólo un caramelo que ofrecí para incitar a participar en el tema. Que de haber sido aceptado el "reto" debería haber contado con terceros para haber desarrollado plenamente lo que llevaba en mente.