Why is that we never use these terms interchangeably? I.e. one wouldn't say "I've painted my walls a deep brunette".
Why is it that "brunette" and "blonde" are used exclusively in reference to hair colour yet they just mean "brown" and "yellow"?
According to the OED both 'blonde' and 'brunette' are used exclusively in relation to hair colouring, occasionally extending to the complexions of the persons concerned.
The position is, I believe, much the same in French, from which both words emanate. Except that the City of Lille, Nord-Pas-de-Calais region, is home to the famous 'blonde' - a beer of distinction of the Pelforth brewery, now (perhaps sadly) owned by Heineken.
It is useful to have words that describe the hair color of a person. And hair color is not really the same as "brown" and "yellow"-- hair has unique versions of colors. It would be useful in English to have more terms that describe hair to go with brunette (brown hair). I suggest these: noirette (black hair), rougette (red hair), jaunette (blonde hair). All are based on French words of that color.
English derives heavily from French, and in French you have brun and blonds instead of marron and jaune (although jaune is a very crude translation). Both brunette and blond derive from French in this regard. Interestingly, we also follow French in other hair color: when someone has red or black hair, like in French, we use the term red or black to describe it. The Wikipedia page, which I cannot link to due to reputation, has a lot of useful information on the subject.