Зависит от того, насколько сложны плагины.
Первый подход идеален, если мопсам нужны только настройки.В этой ситуации я не вижу никаких ограничений первого метода.Второй способ не дает ничего нового.Вы можете получить ту же информацию, что и в файле манифеста в структуре данных, и извлечь ее из метода интерфейса плагина.Это проще, потому что вы управляете только DLL-файлом.Также, если файл очень сложный, вы можете поместить его в ресурс в dll.В вашей базе данных вы можете сохранить в таблице что-то вроде: plugin_name_settingname, значение в таблице настроек, которую вы используете для всех плагинов.
Мне когда-то приходилось поддерживать механизм плагинов, где плагины встраивали свои собственные таблицы.В этом случае вы можете получить новую схему tabels и имена в методе интерфейса, который подключает implenet.Затем вам нужно создать это в базе данных.Это как инсалл для плагина.