Das geht nicht.
Dann machens die von mir getesteten Browser falsch :) wird jedenfalls wie gewünscht dargestellt. Sollte das tatsächlich falsch sein: :outside:after wäre eine Möglichkeit.
<img><span/></img>
geht aber nicht.
Im HTML-Code nicht, aber im DOM ist das herzlich egal.
span-Elemente dürfen keine Block-Elemente enthalten - dennoch geht ein span:after { content: 'foo'; display: block; } problemlos.