rfc5952, la sección 4.2.2 "Manejo de un campo 0 de 16 bits" dice:
El símbolo "::"no debese puede utilizar para acortar solo un campo 0 de 16 bits. Por ejemplo, la representación
2001:db8:0:1:1:1:1:1 es correcta, pero
2001:db8::1:1:1:1:1 no es correcta.
Elkawamura-03El borrador tiene una pista de por qué:
4.2.2. Un campo 0 de 16 bits
"::" no debe usarse para acortar solo un campo 0 de 16 bits, ya que tendería a inducir a error al pensar que hay más de un campo de 16 bits acortado.
Pero no estoy seguro de seguir el razonamiento aquí. ¿No sería más sencillo de entender si :: siempre se expandiera a la cantidad máxima permitida de ceros?