Когда-то я экспериментировал с разделением ядра на несколько модулей, и т.п.
Связность высокая достаточно этого кода.
Сложность только возрастает.

В итоге, возможно, оптимальный вариант именно такой - монолитный модуль.