Я думаю, что вы правы в своем утверждении, что nHibernate, Castle Windsor, WCF должны находиться на уровне инфраструктуры.
На самом деле их использование отличается.WCF часто помещаются в отдельную сборку / проект и поэтому могут рассматриваться как инфраслой, поскольку мы исключаем его из сборок / проектов презентаций, служб и доменов.
Nhibernate часто упоминается только в сборке данных / инфра, нонекоторые шаблоны Nhibernate также используют Global.asax или CustomHttpModule для настройки сеанса Nhibernate для каждого веб-запроса.Это может быть удобно, но также требует дополнительных ссылок.
Замок с другой стороны может быть полезен во всех слоях.Статическую обертку можно легко сделать, чтобы удалить множество ссылок на Castle или взглянуть на общий локатор службы Microsoft Practices.Это также может помочь в разделении зависимостей, так что конкретный инструмент DI.