> 1. Должен ли этот сеттер проверять корректность мыла?
Нет, не должен. Проверка целостности данных должна производится перед выполнением критического действия.
Однако, зачем тогда такой простой метод?
C таким же успехом можно просто писать:
$s->email=«vasia@pup.zemli»;
Сеттеры и валидаторы должны жить отдельной жизнью.