CSS para quebra de linha antes / depois de um item específico `bloco inline`

Digamos que eu tenho esse HTML:

<h3>Features</h3>
<ul>
    <li><img src="alphaball.png">Smells Good</li>
    <li><img src="alphaball.png">Tastes Great</li>
    <li><img src="alphaball.png">Delicious</li>
    <li><img src="alphaball.png">Wholesome</li>
    <li><img src="alphaball.png">Eats Children</li>
    <li><img src="alphaball.png">Yo' Mama</li>
</ul>

e este CSS:

li { text-align:center; display:inline-block; padding:0.1em 1em }
img { width:64px; display:block; margin:0 auto }

O resultado pode ser visto aqui:http://jsfiddle.net/YMN7U/1/

Agora imagine que eu quero dividir isso em três colunas, o equivalente a injetar um<br> depois do terceiro<li>. (Fazer isso seria semanticamente e sintaticamente inválido.)

Eu sei como selecionar o terceiro<li> em CSS, mas como forçar uma quebra de linha depois dela? Isso não funciona:

li:nth-child(4):after { content:"xxx"; display:block }

Eu também sei que esse caso em particular é possível usandofloat ao invés deinline-block, mas não estou interessado em soluções usandofloat. Eu também sei que com blocos de largura fixa isso é possível definindo a largura no paiul para cerca de 3x essa largura; Não estou interessado nesta solução. Eu também sei que eu poderia usardisplay:table-cell se eu quisesse colunas reais; Não estou interessado nesta solução. Estou interessado na possibilidade de forçar uma quebra no conteúdo embutido.

Editar: Para ser claro, estou interessado em "teoria", não na solução de um problema específico.O CSS pode injetar uma quebra de linha no meio dedisplay:inline(-block)? elementos, ou é impossível? Se você tem certeza de que é impossível, essa é uma resposta aceitável.

questionAnswers(9)

yourAnswerToTheQuestion