Если честно, я думаю, что это просто побуждает людей использовать "магические числа" в качестве флагов:
SetBit(&flags, 12); // 12 is the flag for Super mode
То, что вы на самом деле хотите, называется константами:
#define SUPERMODE_FLAG 12
...
SetBit(&flags, SUPERMODE_FLAG);
Но есливы будете использовать именованные константы, вы можете также называть маски, а не битовые числа, в этом случае операция настолько проста, что нет необходимости в вспомогательной функции:
#define SUPERMODE_MASK (1 << 12)
....
flags |= SUPERMODE_MASK;
В необычном случае, когдавы манипулируете отдельными битами по числу, не зная, что они означают, тогда я предпочитаю второй по той же причине, что и Кристо - мне кажется, что функции без побочных эффектов немного легче рассуждать, чем мутаторы.