I am not that expert on machinekit, but I will try to give my opinion, maybe someone will support or correct it
The problem is communicating with lots of machine pieces, in Machinekit exists Machinetalk but it makes more Machinekit instances talking to each other (and Machinekit runs on Linux).
It is based on ZMQ, that requires some Unix system calls, so moving to MCU world may be quite hard, always if it is possible to port ZMQ to firmware.
Talking about low level communication protocol CAN may be a good option, since it is already used in automotive and supports multiple endpoints talking (one at time) with a master. Or even multi master if needed. But this would require some work above that comunicate in a proper way with machinekit, at least a HAL module/ direver that manages the CAN communication and shows all the connected MCU to the other HAL module
Another system that try to solve this is EtherCAT, LinuxCNC can surely talk with ethercat modules
I tried it a couple of years ago, and i found that the industrial world use EtherCAT on windows and has the xml config file written in a different way from the LinuxCNC world.
Manufacturer will give the config in the standard way, and you will have to translate it for yourself.
For example, I made a xml file to work with
that arduino shield , but I died while trying to interface with a Weidmuller EtherCAT module (again, it was a couple of years ago, and I am a very beginner).
talking about the Raspberry, I have seen everyone avoided it's Ethernet controller is on the USB-bus, so it's inherently non-real-time. Other boards available are the asus Tinkerboard, or the banana Pi, but I have seen few people using that alternatives.
mngr