Коли уж зашла речь про бубны, то еще один вариант ограничить выборку значений enum - SysLookup::lookupEnum(). Второй параметр метода - контейнер с исключаемыми значениями.
Для использования этого метода требуется создавать текстовое поле/edit-метод/calculated field (вобщем FormStringControl) и соответственно прописывать сохранение значений в поле с enum.
В гриде оно кстати работает. В общем - куда ни плюнь - без шаманства никак