That's not a problem if we write an exception in the law to allow the use of reasonable force to prevent the public desecration of the flag. We already have similar exceptions in defenses to criminal and civil assault where the assailant is acting to protect a third person.
The way I see it, when a flag burner makes his symbolic speech in public, and government stands in the background to punish a person who disagrees with that message and wishes to employ reasonable force to make his own point, then government has taken sides with the flag burner and forced everyone else to tacitly agree with HIS speech. That isn't fair.
Let's just take it out of the realm of public protection. You're free to desecrate the flag in public, and a veteran is free to punch you in the nose if you try.
Even steven.
So then, in your world, does a third veteran have the right to beat up a veteran attacking a person buring a flag? Might as well make it a free-for-all, right? A free speech riot?