Bueno, lo probé en Chrome nada más y funcionaba. En Firefox no lo hace.
Luego leyendo la
especificación (la parte verde):
Cita: Note. This specification does not fully define the interaction of :before and :after with replaced elements (such as IMG in HTML). This will be defined in more detail in a future specification.
Entiendo que luego cada navegador lo hace un poco como quiere si la especificación no lo especifica.
Voy a probar a ver si sale otra cosa.