Не обязательно использовать атрибуты DataContract, без них ваш сервис будет работать нормально.
Сказав это, я действительно не думаю, что ваш сервис и клиент совместно используют библиотеку классов - лучший подход к проектированию. Было бы намного понятнее, если бы вы выставляли свои типы через DataContracts.
Что произойдет, если когда-нибудь кто-то захочет использовать ваш сервис, но у него не будет доступа к общей библиотеке классов?