Silverlight can communicate directly with about anything in the local or external network when tcp is the underlying protocol, bar some security restrictions.
When you communicate with a local WCF Service based on tcp, for example, you still need the clientaccesspolicy.xml
be served by http on the save host - or run Silverlight with elevated permissions.
For http, Silverlight can use both ask the browser to make a request or make a request directly (I'm not sure which is used for wcf), tcp will always be done from the plugin directly.
The Silverlight application has to be hosted by a website, but the website doesn't need to do anything beyond that for Silverlight to work, or for it to access a WCF Services. You can host a Silverlight app as purely static files.