Стоит ли опциональные вещи уносить в одно сериализованное поле БД?
Вполне возможно, почему нет-то? Можно хранить эти настройки в виде json-объекта.
Я обычно так и делаю, храню в json, если полный бардак, то есть куча разных типов данных, в том числе структуры, опции абсолютно разные, могут появиться в любой момент и все это надо как-то связать и, внимание, мне не нужно как-то фильтроваться по этим полям при выборке. В остальных случаях обычно Table per Hierarchy.