Возможно я изначально не правильно подхожу к вопросу, поправьте, если это так. Большую часть времени работал со "стандартом" HTML/CSS/jQuery + бекэнд, к примеру на Django. И придерживался мысли о том, чтобы не пришло от пользователя это нужно проверить, а потом обработать (записать в БД). К примеру, пусть маленькая формочка отправки средствами jQuery проверяла, что вбит именно email, а не просто строка (чтобы не дергать бекэнд на простой задаче), но все равно писал код на бекэнде, чтобы точно убедиться что это мыло.
Начал знакомиться с Angular, где предполагается вынести все на фронтэнд и общаться с сервером через Rest. То есть обрабатывать данные из формы мне придется и на фронте и на бекэнде или нет? Или в Angular все так безопасно и можно смело сразу писать в БД? То есть если не все хорошо, мне придется писать два кода в место одно, в чем тогда профит?
Валидация на сервере должна быть. Валидация на клиенте просто понижает таких мелких запросов к серверу для валидации, так же упрощает сам сервер в виду того что нужно организовать только REST Api. Так же это увеличивает качество самого UI. Но главное же что бы не дублировалась бизнес логика, обычно она полностью закрыта на сервере, а клиент лишь предоставляет UI для работы с данными. Хотя если приложение должно работать оффлайн дублирование все равно будет иметь место.
По валидации ничего не меняется, данные надо валидировать, на сервере обязательно, на клиенте желательно.
Профит в разделении, серверная часть становится независимой(rest), и в случае если веб-клиент перестанет быть единственным клиентом - захотели сделать мобильное/десктопное приложение, все что угодно.. Не нужно будет делать отдельный сервер для этого, а по хорошему вообще ничего на сервере добавлять не придется.