Потому что данные, получаемые из БД - это просто блоб. Их нужно распарсить в имеющиеся структуры данных. К тому же, на основе полученных данных можно посчитать еще какие-нибудь данные. + модели позволяют экранировать запросы к БД (от SQL injection и пр.).
пока что единственное отличие между ними - я могу шлепнуть атрибуты на поля сущности