Half the people in this thread probably don't know the full history of the flag. And they probably think that the civil war was based 100% only on racism and slavery.
well it was a political stress between constituitonal rights between the north and south, mainly because the south wanted a more loose state structure, while the north wanted a stronger, national political structure.
however, a strong ideal (and mark) of the confederate states was the fact that slavery should be allowed / decided by the states whether the people should have it or not.
(also the emancipation proclimation really made it more of a war about slavery than politics. lincoln pretty much said it himself.)
lastly, the thing that makes the civil war more about racism, in my opinion, is the reconstruction that came after it. the north won, and in theory, the 13th (as well as the 14th and 15th amendments) was supposed to totally rid of all slavery and discrimination. when we passed the amnesty act, however, and R.B. Hayes was elected, the democrats fell back into power, in which by "total surprise" were almost all confederates - which enstated the jim crow laws , as well as other things such as the grandfather clause and poll taxes for votes (which again, discriminated against previous slaves). the final nail in the coffin was the point where, and in plessy vs furguson, all of these were declared constitutional.
imo, it's not a freedom of speech issue, as in theory, it is not involved with politics and more of a social issue between race (in which it should be seen as highly rude, not illegal to fly).
the thing about saying it's "southern pride", however, is just stupid. if you had common sense, you wouldn't fly a flag that people hold high offense to. should I fly a national socialist germany flag because "Riddler helped the economy" and "I'm a true german, with german pride"? no way.
tl;dr: civil war was mainly about slavery anyway, and the confederate flag can be considered offensive.