CSS para salto de línea antes / después de un elemento particular de "bloque en línea"

Digamos que tengo este 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>

y este CSS:

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

El resultado se puede ver aquí:http://jsfiddle.net/YMN7U/1/

Ahora imagine que quiero dividir esto en tres columnas, el equivalente a inyectar un<br> después del tercero<li>. (En realidad, hacer eso sería semántica y sintácticamente inválido).

Se como seleccionar el tercero<li> en CSS, pero ¿cómo forzo un salto de línea después? Esto no funciona:

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

También sé que este caso particular es posible usandofloat en lugar deinline-block, pero no me interesan las soluciones que usanfloat. También sé que con los bloques de ancho fijo esto es posible configurando el ancho en el padreul a aproximadamente 3 veces ese ancho; No estoy interesado en esta solución. También sé que podría usardisplay:table-cell si quisiera columnas reales; No estoy interesado en esta solución. Estoy interesado en la posibilidad de forzar un descanso dentro del contenido en línea.

Editar: Para ser claros, estoy interesado en la 'teoría', no en la solución a un problema en particular.¿Puede CSS inyectar un salto de línea en medio dedisplay:inline(-block)? elementos, o es imposible? Si está seguro de que es imposible, esa es una respuesta aceptable.

Respuestas a la pregunta(9)

Su respuesta a la pregunta