My understanding is if you follow the procedure of client access described in Understanding WCF Services In Silverlight 2, you should be able to choose which service to access at runtime, because you don't need to create proxy at client side.
A snippet from this article:
Now we may turn our attention to the
client application. To begin, let me
start off by reminding everyone that
you shouldn't ever use "Add Service
Reference" in Visual Studio for
magical service client creation. The
code is incredibly verbose, hard to
manageable, edits are prone to being
overwritten, and it's almost always
used as an excuse to not actually
learn WCF.
As I've mentioned many times already,
WCF relies on the concept of the ABC.
For both
.NET and Silverlight, you merge an
address and a binding with a contract
in a channel factory to create a
channel. This isn't just fancy
conceptual architect speak, this is
exactly what your code would look like
(the sign of really good
architecture!) Below is the .NET
version of what I mean:
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:1003/Person.svc");
IPersonService personService = new ChannelFactory<IPersonService>(basicHttpBinding, endpointAddress).CreateChannel();
Person person = personService.GetPersonData("F488D20B-FC27-4631-9FB9-83AF616AB5A6");