prints the following colormap:
There is only one mapping to ''superwhite'' value but 17 to each of the other colors. My mistake was to assume, that only the higher nibble counts. Now it is clear why I see no difference between 0x00 and 0x10. Instead of shifting my grey levels by 4 (v<<4), I should use (v<<4)|v. This gives the "superwhite" and all other 15 shade levels.
As described in the postings above, the impression of a 17th value was caused by the memory effect of the display.