1) Это может показаться немного похожим, но на самом деле это зависит от кода. ИМХО Вам действительно следует избегать любой логики или кода в представлении, кроме той, которая непосредственно связана с отображением представления. Однако для этого кода Razor предлагает прекрасный чистый способ кодирования в представлении.
2) Нет - моделью может быть любой класс.
3) Ничто не мешает вам добавлять методы в модель - но на самом деле они должны быть очень простыми объектами передачи данных - они просто «переносят» данные. Поэтому чаще всего придерживайтесь свойств.