Вы даете Виндзору уже существующий экземпляр.Следовательно, он не создает его - он повторно использует экземпляр, который вы ему дали.
Другими словами, ваш код может быть переписан в эквивалент:
var theOneAndOnly = UnitOfWorkContainer.Current;
container.Register(Component.For<IUnitOfWork>()
.Instance(theOneAndOnly)
.LifeStyle.Transient);
Я думаю, что вы на самом делеимелось ввиду:
container.Register(Component.For<IUnitOfWork>()
.UsingFactoryMethod(() => UnitOfWorkContainer.Current)
.LifeStyle.Transient);