I don't think duplicate flag is a problem; the problem is that you cannot distinguish grouped flags from arbitrary sequential enums.
For the compiler 
```
enum E
{
   None,
   OptionA = 1<<0,
   OptionB = 1<<1,
   OptionAB = A|B
}
```
is just the same as
```
enum E
{
   OptionA,
   OptionB,
   OptionC,
   OptionD
}
```
if you use Flags with the second enum, it's going to behave in a way you almost certainly didn't mean it to. It would be very misleading to do so silently.