Есть подобная функция, можно по клику на сборке найти где она используется и если нигде, то удалить. Так что чисто технически есть, но не в пакетном режиме.
Иногда только в рантайме можно понять, что необходима какая-то сборка. Ссылка на нее может быть в файле конфигурации. Например, если используется IoC-контейнер c XML-конфигуратором. Тогда сборка, содержащая необходимую реализацию какого-либо интерфейса, должна присутствовать в папке bin, хотя ее упоминаний в коде нет.
Еще один момент. В SL приложениях есть опция по уменьшению размера XAP, когда подключенные сборки публикуются отдельными zip-архивами. Это работает для всех сборок, включенных в приложение, которым сопоставлен файл .extmap. Но если сборка не нужна приложению напрямую (используется через одну и более зависимых сборок), то такой номер не проходит, поэтому приходится делать лишние референсы. Можно ли сделать опцию для SL приложений, которая бы проверяла этот случай и не удаляла подобные «ненужные» ссылки?
Удаление неиспользуемых сборок из .NET проекта