Контейнер IoC - это фабрика. Я не вижу смысла оборачивать это, если только вы не думаете, что собираетесь менять и внедрять разные реализации.
Абстракции прекрасны, но в какой-то момент все слои должны закончиться, и вам нужно написать конкретную реализацию. Я не вижу смысла в упаковке контейнера IoC.
Почему зависимость должна быть явной? Если WorkQueueService имеет коллекцию IWorkItemProcessor, число которой настраивается в вашем IoC, почему бы просто не внедрить коллекцию, как любую другую зависимость? Я не понимаю, почему WorkQueueService нужна ссылка на контейнер IoC.