Да, именно для этого предназначен Виндзорский замок. Я использую Castle в домашнем проекте и использую его для динамической загрузки классов из сборок, которые, вероятно, не существовали при создании класса.
Хитрость в том, что загружаемые вами классы должны реализовывать интерфейс, известный вашему приложению.
Смысл в том, чтобы вы могли включать и выключать различные функции по мере необходимости. Ваш проект использует ISaveMyData для сохранения материалов и использует Castle Windsor для использования Oracle или MySql в зависимости от того, что установлено на клиентском сайте.
Что касается WCF, компоненты WCF уже должны указывать интерфейс, который они используют (их контракт). В обычной конфигурации для компонентов WCF вы можете изменить адрес конечной точки и другую информацию так, чтобы они указывали на разные компоненты всякий раз, когда вам нужно, если они используют один и тот же контракт. Для этого не нужен Виндзорский замок. Перекомпиляция также не требуется - просто измените конфигурацию и начинайте.