Angular.js и backend будет ли дублирование кода?
Валидация на сервере должна быть. Валидация на клиенте просто понижает таких мелких запросов к серверу для валидации, так же упрощает сам сервер в виду того что нужно организовать только REST Api. Так же это увеличивает качество самого UI. Но главное же что бы не дублировалась бизнес логика, обычно она полностью закрыта на сервере, а клиент лишь предоставляет UI для работы с данными. Хотя если приложение должно работать оффлайн дублирование все равно будет иметь место.
По валидации ничего не меняется, данные надо валидировать, на сервере обязательно, на клиенте желательно.
Профит в разделении, серверная часть становится независимой(rest), и в случае если веб-клиент перестанет быть единственным клиентом - захотели сделать мобильное/десктопное приложение, все что угодно.. Не нужно будет делать отдельный сервер для этого, а по хорошему вообще ничего на сервере добавлять не придется.