Причина, по которой они используют знак #, заключается в том, что браузер интерпретирует это как перемещение в какое-либо место на странице, в противном случае это приведет к перезагрузке страницы.
Что касается последствий для поисковых систем, я не уверен, что так или иначе. Может быть, кто-то более опытный с SEO может вмешаться в это.
Тем не менее, я уверен, что вы можете получить то поведение, которое вам нужно, просто может быть немного хитро с вашей стороны. Другой способ передачи информации в среду выполнения клиента Silverlight - использование параметров Query String. Вы можете получить доступ к параметрам строки запроса, используя коллекцию System.Windows.Browser.HtmlPage.Document.QueryString, затем вы можете загрузить элемент управления Page или User нужным вам содержимым на основе этого параметра.
Что касается имитации структуры папок с помощью '/'. Я знаю, что есть способы сделать это, используя пользовательские настройки веб-сервера / HTTPModules. Я предполагаю, что вы используете IIS / ASP.Net, я бы посмотрел на это из Гатри:
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
Требуется немного хакерства, но если вы действительно настроены на это, я уверен, что вы могли бы. Вы также столкнетесь с вещами, упомянутыми выше, если вы попытаетесь использовать ту же логику во время сеанса. Это может сработать только для того аспекта глубоких связей, который вы ищете.