Это плохая практика / неэффективно рисовать UITableViewCell в IB против рисования в коде?
Совсем нет - Apple рекомендует это и приводит пример того, как это сделать. См. Руководство по программированию табличного представления - прокрутите вниз до Загрузка пользовательских ячеек табличного представления из файлов пера - просто следуйте другим рекомендациям относительно использования прозрачности, повторного использования ячеек и т. Д.