Поскольку одной из главных целей Prism является модульность, кажется очевидным, что ваши ресурсы нужно размещать только в соответствующей сборке. Совместное использование ресурсов через одну централизованную сборку является противоположностью модульности.
Делая это централизованным способом, вы получите еще один тип ада DLL в то время, когда вы хотите добавить больше (дополнительных) модулей. Вам придется обновить общую сборку без ведома модулей, которые используют сборку. И определение того, какой модуль присутствует, просто снова нарушает саму модульность. Другой способ - всегда обновлять общую сборку до последней версии.
Что бы вы ни делали, следование централизованному подходу вынуждает вас создавать все ваши модули обратно совместимые.
Это моя точка зрения на данный момент. Но так как я работаю с Призмой всего несколько недель, я не совсем уверен, что мое заявление так и должно быть.