Centrar y alinear a la derecha los elementos flexbox

me gustaría tenerA B yC alineado en el medio.

Como puedo conseguirD ir completamente a la derecha?

ANTES DE:

DESPUÉS:

¿Cuál es la mejor práctica para hacer esto?

ul {
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
li {
  display: flex;
  margin: 1px;
  padding: 5px;
  background: #aaa;
}
li:last-child {
  background: #ddd;
  /* magic to throw to the right*/
}
<ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
</ul>

https://jsfiddle.net/z44p7bsx/

Respuestas a la pregunta(4)

Su respuesta a la pregunta