UPDATE2:
Хотя я считаю, что это не очень хорошая идея, вы можете достичь этого с помощью следующего кода.
AllTypes.FromAssembly(GetType().Assembly)
.IncludeNonPublicTypes()
.BasedOn<IService>()
.WithService.FirstInterface();
UPDATE:
Это очень логичное поведение, и я бы посчитал это ошибкой, если бы было иначе. AllTypes предоставляет только открытый тип, потому что он предполагает, что если вы сделали свой тип внутренним, вы сделали это по какой-то причине, и если он выявил это, это может быть проблемой безопасности.
Когда вы регистрируете тип явно с другой стороны, это работает, потому что Виндзор предполагает, что, поскольку вы явно просите его использовать внутренний тип, вы знаете это лучше.