Вот я совершэнно уверен, что вносить в ядро драйвера USB-устройств (включая USB-hdd) было ошыбкой. А уж ttyACM/ttyUSB — очень болезненной ошыбкой.
Вот если ip в ядре — это нормально, то поводу tcp... Ну, есть варианты. Хотя и тожэ можно. То есть, понятно, что он решает: для деления приложэний по портам потребовался бы либо два context switch на read(), либо эклектический ip-стэк с внутренним роутером пакетов на базе байт по смещениям.
Но вот следующий уровень тащить туда, message broker — это, извините, вообще идиотизм. Существенно большый, чем тащить в ядро web server. Поскольку web server в ядре, при сопоставимом уровне абстракцыи, хотя бы теоретически можэт сделать хоть что-то полезное — ускорить там синтэтический тэст.
kdbus делает только вредные вещи: ограничивает ipc локальным компьютэром, и более ничего.