auch wenn das bedeutet, dass man Kompromisse eingeht? Zum Beispiel indem man zusätzliche Elemente verwendet [Forumsbeitrag] oder eine <hr> zweckentfremdet?
Kompromisse eingehen ja - aber die richtigen.
Wenn dir :before nicht zur Verfügung steht weil du auf einen alten Browser achten musst, füge eine span-Element mit der klasse "before" ein (möglicherweise auch per JavaScript). Dämliche Bezeichner wie "leftcorner" usw. kann man sich sparen.
Der betreffende Browser kennt :first-child nicht, kein Problem - gibt dem ersten Element eine Klasse "first-child".
Somit geht beim Lesen des Codes klar hervor wie es gemeint ist und beim aussterben des legacy-Browsers kann der Code einfach angepasst werden.