rfc5952, section 4.2.2 "Handling One 16-Bit 0 Field" goes:
The symbol "::" must not be used to shorten just one 16-bit 0 field. For example, the representation
2001:db8:0:1:1:1:1:1 is correct, but
2001:db8::1:1:1:1:1 is not correct.
The kawamura-03 draft has a hint as to why:
4.2.2. One 16 bit 0 Field
"::" should not be used to shorten just one 16 bit 0 field for it would tend to mislead that there are more than one 16 bit field that is shortened.
But I'm not sure I follow the rationale here. Wouldn't it be simpler to understand if :: always expanded to the maximum allowed amount of zeros?