I asked a question here to make a recommendation on an upgrade on color palette selection.
We have a dashboard that has many boxes displaying text. You can change the color of the boxes and the text as you want.
One of my suggestions was to replace the color palette from a full RGB selector to a smaller selection of colors, as the user least likely is going to differentiate between something like:

download bmml source – Wireframes created with Balsamiq Mockups
...if they're not close enough (Yes, those are two different shades of red).
Another idea was to limit the text/background combinations to ensure good contrast happen

My colleague told me that "the user should be able to pick black background on black text if that's what he wanted", I replied that I didn't agree. Specifically having the cradle example given in this TED video from minute 6:00 to minute 9:00.
The video says:
You want to make it hard to use wrong. You want to make the right way to use it the easiest way to do it.
So my question is:
Is it better to Limit the user in the color choices they can make in order to ensure a better user experience? (For a reason I cannot stop thinking of Steve Jobs right now).
BONUS: Citing Hick's Law would really make me happy (if applicable). I want to see what's the impact on hick's law on a 32 bit color palette :)


