Но Контроллер то это же и есть реальный класс, вот он у меня в руках могу в Устройство засунуть могу в урну выкинуть.
Хорошо будем рассуждать конкретно. Есть некий стандартный контролер с обозначенным интерфейсом, протоколом взаимодействия и обозначенным функционалом.
Для нас по сути он черный ящик. Мы его берем пихаем в некое устройство, и устройство использует нужные ему функции.
Устройство-клиент, контролер-сервер. Контролеру по барабану в каком он устройстве, устройство знает какую услугу ему запросить.
Тогда контролер имеет набор сервисов. При разработке устройства мы уже знаем какие сервисы может предоставить этот стандартный контролер. Если так, то не вижу проблем и беспокойства
Возможно Вы пытаетесь получить ситуацию типа стволовая клетка? То есть будучи встроенная куда-та, она адаптируется к внешнему окружению и исполняет нужную программу. Но программа должна буть уже предусмотрена в любом случае