1. Красиво ли и целесообразно писать условия и циклы в модели, а не в контроллере, если это удобнее?
Да желательно писать всё что связано с обработкой бизнес-логики (там парсинги всякие) в моделе. В контроллере же, нужно это вызывать и просто передавать переменные ($_POST, $_GET)
2. Мне нужно выполнять ajax запросы из БД. Стоит это оформить прям в контроллере или равносильно вынести ajax во вьюшку и передавать через POST уже контроллеру?
Но ведь УРЛ от Ajax-запроса все равно вызывает экшен контроллера. POST'ом следует выполнять только то, что изменяет что-то - пишет в базу например. А для выборки нужно использовать GET. Во вью задаётся клинтская логика, которая вызывает урл и в ответ делается что-то - обычно это в 99% делается именно так.
3. Как лучше - делать все циклы с массивами в контроллере и переменные уже передавать во вьюшку или равносильно, что и разбирать массивы во вью?
Ни в коем случае не нужно разбирать массивы во вью. Во вью нужно просто отображать эти подготовленные массивы, а подготавливатся они должны в моделе и в случае необходимости изменять своё содержимое через экшены.
Есть ли вообще какие-то правила по этому поводу - оформление кода?
Почитай что такое SOLID, Separation of Concerns
А что касается MVC:
- то модели должны быть толстыми (вся обработка должна быть только там)
- конроллеры тонкими (должны уметь только получать и передавать)
- а вью - тупыми (должны знать только как отображать)
Как-то так