Как правильно разворачивать сетевую инфраструктуру с dhcp? С использованием отдельного оборудования или все на одном сервере?
Вариант 1 используют очень храбрые, очень ...неумные либо фанаты Microsoft, непоколебимо верящие в силу файрволла от MS. Если это про Вас - Ваш выбор.
Вариант 2 используют те, кто любит постоянно лечить компы юзеров от майнеров и жаловаться на то, что почту блокируют за спам. Ну, либо тот, кому совсем уж нечего скрывать :) Если это про Вас - Ваш выбор.
Вариант 3 уже больше похож на типовую схему построения. 
DHCP не стоит держать на роутере. Роутер должен делать то, для чего предназначен - роутить. Ну еще файрволл и VPN, по необходимости. DHCP относится к базовым ролям внутренней сети и держать его IMHO нужно на сервере AD - нагрузка копеечная, зато если вовремя заполнять данные оснастки - можно использовать ее в качестве таблицы распределения IP - не весь же сегмент у Вас динамика, сервера как правило имеют статические адреса.
Эксч категорически рекомендуется отделить от AD. Прокси, если есть - тоже отделить. При нынешних технологиях виртуализации это сделать куда как просто. Файлопомойку - тоже отделить.
IMHO, что бы ни говорили крутые специалисты,  но в первую очередь всё упирается в ресурсы: деньги на железо и лицензии, место для размещения всего оборудования. Если есть в наличии или возможность приобрести только один сервер + одна лицензия на ОС, то естественно всё придётся ставить на одном, если есть ресурсы, то вариантов много.
DHCP сервис малотребовательный, особенно для небольших сетей. Виндовый по соседству с AD/DNS меня ещё ни разу не подводил, но ни разу не подводил также и DHCP на базе pfSense или домашних роутеров (Zyxell/Asus).
Если почтовый сервер находится в локальной сети, то для него я бы посоветовал выделить отдельную машину (хотя бы виртуальную) и отдельный IP-адрес, чтобы зараженный клиентский компьютер или личный смартфон сотрудника в локальной сети не подставлял адрес под антиспам фильтры. Дополнительный адрес у многих провайдеров стоит копейки.
В целях экономии файл-сервер можно прикрутить на контроллере, но может возникнуть неприятная ситуация с закончившимся свободным местом, бэкапами или вредоносом из пользовательской папки. Если есть возможность: на виртуалку или на отдельную железку.