Обязательно ли использование моделей при разработке в CodeIgniter?
Можно расширить штатную модель и предусмотреть в ней методы get($id), save($data), update($id, $data), delete($id). Упрощает и ускоряет работу над проектом. Как расширить есть в доках.
Если ЧИСТО для себя, нужно наклепать что-то, чтобы работало - можно и без моделей и без CI.
Но если стоит задача "освоить фреймворк", то конечно следует при разработке пользоваться best practice, иначе зачем осваивать фреймворк неправильно?