Every feature request is evaluated using (more or less) the following criteria:
- How much will it cost to implement, and
- How much benefit will accrue?
For this particular feature, the cost far outweighs the benefit.
What does a bad flag cost? Nothing to the flagger, not really. The benefit of good flagging is your flags are given a higher priority in the moderator queue. If a user abuses the flag system, and they get a large number of declined flags, their flags will simply not show up in the moderator queue anymore.
Allowing people to cancel their flags, on the other hand, would require writing a whole new subsystem to show you your flags, allow you to check off the one(s) you want dismissed, and write the changes to the database. All this for a very small (it's on the order of 1 percent) number of flags that a bad flagger wouldn't bother to correct anyway.