Мой первый инстинкт заключается в том, что все, что сильно зависит от сериализации ваших базовых классов, может столкнуться с проблемами версионирования - изменения в вашем ядре потребуют одновременной модификации всех ваших поставщиков и потребителей сериализации (и, вероятно, всех ваши постоянные хранилища), а не сервис / контрактный подход, который позволил бы интерфейсу оставаться статичным, где это возможно.
Однако, действительно трудно дать какое-либо мнение, не делая большого набора предположений о том, как система будет использоваться и развиваться с течением времени - если вы довольны подходом, продолжайте его и дайте нам знать, как это происходит.