Я думаю, вам следует начать с концентрации на правильности. Это гораздо важнее, чем минимальная разница между незначительными различиями в производительности, которые могут возникнуть в вашей программе. В этом случае я бы сфокусировался на правильном представлении ваших типов (enum кажется лучшим). Затем в профиле вашего приложения и, если есть проблема, тогда и только тогда вы должны ее исправить.
Создание кода быстрее в дальнейшем, как правило, является простым процессом. Возьми ссылку, которую предоставила сколима. Если бы вы выбрали enum, было бы приблизительно 10-минутное исправление для устранения потенциальной проблемы производительности в вашем приложении. Я хочу подчеркнуть слово потенциал здесь. Это определенно было проблемой для NHibernate, но вопрос о том, будет ли это проблемой для вашей программы, будет зависеть только от ее использования.
С другой стороны, сделать код более корректным позже в этом процессе, как правило, сложнее. В достаточно большой проблеме вы обнаружите, что люди начинают зависеть от побочных эффектов предыдущего плохого поведения. Это может сделать исправление кода без проблем с другими компонентами.