Я полагаю, потому что механизм конфигурации WCF не будет знать, с каким базовым адресом разрешать относительные адреса.
С http://msdn.microsoft.com/en-us/library/ms734786.aspx:
<service name="Microsoft.ServiceModel.Samples.CalculatorService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
<!-- Not allowed, just for demonstration purposes -->
<add baseAddress="http://localhost:8000/ServiceModelSamples/serviceOther"/>
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<endpoint address="/test"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<endpoint address="http://localhost:8001/hello/servicemodelsamples"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<endpoint address="net.tcp://localhost:9000/servicemodelsamples/service"
binding="netTcpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is another relative address exposed at
http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
В вышеприведенном примере для всех первого, второго и mex-Endpoint невозможно было бы выяснить, какой "baseAddress" использовать.