This is due to the fact that the framework processes pseudo-classes on the last element only. We need to make an exception for virtual children to allow this case to work properly.
Glad you wrote up this bug. My CSS looks almost identical and I've been pulling out my hair trying to understand what's wrong. Happened across your bug report... now I can try another approach.
The following CSS does not work:
This is due to the fact that the framework processes pseudo-classes on the last element only. We need to make an exception for virtual children to allow this case to work properly.