Чья обязанность проверять переменные(isset)?
в MVC нет чёткого определения, куда отнести валидацию. В то же время, MVC не описывает абсолютно всё приложение, только идею. В популярных фреймворках типа Symfony и Zend есть специальные штуки - формы, которые собирают в себя массив пришедших данных, а возвращают заполненный объект, если данные прошли проверку, либо возвращают массив ошибок. Часто практикуют использование формы в контроллере: там сеттятся данные из реквеста в форму, затем происходит проверка формы на наличие ошибок, и если они есть, контроллер возвращает сообщение об ошибке, иначе забирает заполненный объект с данными и передает его в нужный сервис.
С точки зрения mvc, проверки isset не должны быть в модели? Их наверное лучше в контроллер вынести?Лучше, чтобы сайт был практически (или совсем) неломаемым, вынести их в фильтр пользовательских входных данных: в root-уровень, и сразу же проверять на валидность, и только потом уже, передавать на роутинг веб-приложений.
Используйте при валидации regex+preg_match() (вместо тучи isset() в разных местах кода), чтобы сразу знать массив всех входных переменных с установленными значениями и минимизировать риски и нагрузку.