I think that it should be protected under the first amendment. When in doubt I say it's better to error on the side of protecting too many forms of expression then too few. As such I think people should be able to display a flag if they wish to. At least that is my view at this time.
Displaying the confederate flag is practicing of free speech, which is protected under the Constitution, much like burning the US flag or displaying the flag of another country. However, this is a personal right not applicable to governments. It also does not offer protection from those who may disagree with the flag and what it stands for. Free speech is universal.
We talk about free speech too much, but we should go over some truths first.
One: The confederate flag is a symbol of rebellion and treason against the United States. Yes, we have freedom of speech, but several states actually seceded and set up their own government and presidency - this crosses the line from freedom of speech to treason. It should be treated as treason, but the United States, as I am glad to say, granted amnesty and allowed the flag to fly. Treason is in fact punishable by life in prison
Two: It is a symbol of hate. Now I personally dislike when people pull the race card at the drop of a hat (one of my biggest pet peeves), but honestly this is a symbol of hate and using freedom of speech as a cover is wrong.