Я считаю, что создание чего-то подобного с помощью контроллеров не будет проблемой, поскольку они обнаруживаются с использованием пространства имен.
Проблема с представлениями.
По умолчанию при маршрутизации MVC (через ViewEngine) используются только значения Area, Controller и View в коллекции RouteData.
Это реализовано в VirtualPathProviderViewEngine в виртуальных методах FindView (и с использованием не виртуальных GetPath). Вам придется переопределить методы FindView в вашем ViewEngine.
Это не очень большой или сложный объем кода, но ваша лучшая ставка заключается в том, чтобы просмотреть исходный код и отследить его, потому что происходит некоторое кэширование и некоторые другие вещи ...