То, что вы называете моделями на самом деле называют ORM/ODM.
И придуманы они чтобы уменьшить затраты на отдельного разраба бд (sqlщика) и дать шанс обычным бэкендерам писать код не задумываясь о запросах в бд. Ну и вторая сторона (тоже из первой вытекает) для большей гибкости/переносимости кода. Т.е. если вы в какой-то момент развития проекта решили по каким-либо причинам сменить бд (у которого естественно другой синтаксис) вам не пришлось снова все переписывать. За вас все сделает орм/одм.