Все, что вам нужно сделать, чтобы не знать о них внешний мир (клиенты WCF), это не помечать их атрибутом [ServiceContract], тогда не имеет значения, являются ли они публичными
если вы распространяете DLL со службой WCF, вы можете пометить методы:
- private (может вызываться только из одного класса)
- защищенный (такой же, как private + наследующий от него класс)
- внутренний (такой же, как private + все другие классы в той же сборке + любые классы в сборках, которые были названы в InternalsVisibleTo (google it)