As for the Braves cap, I get why Indian and Redskin are offensive. But Brave? How is that different from Vikings, Trojans, Spartans, Knights, Cavaliers etc?
I think it's because they don't exist anymore, who was the last person of trojan descent that you met? The Vikings got their name because Minnesota is full of people who are of Swedish, Danish, Norwegian decent, and once again, there are no vikings in the world.
Vikings, Trojans, Spartans, Knights, Cavaliers etc may no longer exist (or at least not as imagined in popular culture - there are technically knights still in England), but then I don't know a whole lot of Braves out there either. Yes, the culture and people that spawned them still exists, just as there are still Norwegians, Turks, Greeks, English and French.
There are all sorts of things surrounding this that I see offending people, but I still don't get what the "negative stereotype" is in the image and name of indigenous warriors who, I'm fairly certain, would let out a war cry when it was time to whoop ***. I don't even think it can be fairly argued that the image itself is historically untrue (unlike a horned viking).