Вопрос: Нужен ли класс в этом случае? Или можно держать функцию особняком?

Лучший ответ:
Это проблема упрощения. 
Реальный код трудно понять, поскольку он учитывает множество нюансов, важных в реальной жизни.
поэтому в обучающих материалах код упрощают, так что начинает казаться что без классов будет даже проще. 

Кроме того, авторы видеокурсов в большинстве своем - неграмотные имбецилы, которые с трудом понимают код, который пишут. Кроме шуток. Пример. Вот так пишут обезьяны:
$i = 0;
    $newsList = array();
    while($row = $result->fetch()) {
      $newsList[$i]['id'] = $row['id'];
      $newsList[$i]['title'] = $row['title'];
      $newsList[$i]['date'] = $row['date'];
      $newsList[$i]['author_name'] = $row['author_name'];
      $newsList[$i]['short_content'] = $row['short_content'];
      $i++;
    }
    return $newsList;
Реально, макаки. 
Этот гамадрил где-то сам увидел обучающий материал из 1990-х годов прошлого века, запомнил его, и теперь лепит уже в свои "обучающие ведидео". 
при том что если бы он понимал смысл этого кода, то написал бы просто 
$newsList = array();
    while($row = $result->fetch()) {
      $newsList[] = $row;
    }
    return $newsList;
Поскольку $row уже содержит все нужные данные и переливать их из пустого в порожнее не нужно. 
А если бы наш бабуин хотя бы раз в жизни поинтересовался инструментами, которые он использует, то написал бы и вовсе одну строчку,

return $result->fetchAll();

Поскольку все уже написано до нас - надо только руку протянуть и использовать готовое.

И это я не говорю о том, что класс насковозь дырявый в плане безопасности. 

Если вернуться к теме "отдельные функции или класс", то для примера приведенного здесь класс, действительно, не нужен. Любая коллекция статических методов может быть заменена на набор функций. 

В нормальной же модели класс нужен, поскольку в ней будут использоваться переменные класса, например соединение с БД. Таким образом его можно будет передать в конструктор один раз и не писать соединение в каждом методе. 
Также в модели удобно прописать имя таблицы. Тогда множество методов можно будет унаследовать от единого прототипа. например 

abstract class Model {
    protected $table;
    protected $db;
    public function __construct($db) {
         $this->db = $db;
    }
    public function find($id) {
        $sql = "SELECT * FROM `$this->table` WHERE id=?";
        $stmt = $this->db->prepare($sql);
        $stmt->execute([$id]);
        return $stmt->fetch();
    }
}
class News extends Model {
        protected $table = 'news';
}
$news = new News($db);
$article = $news->find($id);

Вот это уже будет минимальное оопэ, и использование класса будет более чем оправдано - один раз написали код, а потом его используем. 

Если хочется нормальных обучающих материалов, рекомендую канал Дмитрия Елисеева, https://www.youtube.com/user/ElisDN/videos

Худший ответ:
Моделью в данном случае должна выступать ORM, а автор просто сделал жалкое подобие для наглядности (видимо в следующих уроках разжует это).
Судя по всему тут всё для наглядности - во View эта модель не прокидывается никак, вьюшка тупо в её области видимости инклудится.  Для примера ОК, можешь попутно трогать Yii2, например.