И>сообщения тоже нужно знать кому посылать. так или иначе, модули должны знать друг о дружке. хотя бы то, что они существуют. И>как вариант, реализовать ядро таким образом, чтобы оно было в курсе о всех загруженных модулях и предоставляло апи для получения интерфейса на конкретный модуль. если какому то из модулей нужно послать сообщение другому модулю, то он у ядра получает его интерфейс и далее работает с ним.
Абсолютно! Абсолютно правильно и наиболее грамотно. Если, конечно, цель оправдывает средства. Потому что не всегда есть бюджет, и не всегда есть опыт, и не всегда есть время для проектирования подобных вещей наиболее абстрактным образом с тем, чтобы не было гемора потом, потому что обычно всем надо здесь и сейчас.