Odd Behavior with CSS :first-child:before in Chrome
I'm reasonably sure you're getting bitten by the same issue as in this previous question I answered:
last-child:after not rendering in Chrome? Pseudo-element use issue?
I figured out the obvious truth in that it was a bug, and found some bug reports confirming it.
Somebody else found an odd workaround; see the accepted answer.