для виджета, имхо, лучше комбинировать префиксы классов + генерация хэшей. если клиенту нужно будет что-то подправить, то дать ему официальный интерфейс (пропсы, css vars и тп) и/или пусть юзать !important для искуственного повышения веса. Для виджета не вижу в этом ничего страшного
Ну тут смотря по задаче. Хотя important, кажется, всегда зло. Оно потом как репей прилипает всюду. Юзеру не всегда можно дать пропсы и css var тоже не всегда из за browser support. Но вообще от задачи всё наверное. В принципе мне нравится global+bem(методология) подход. Но можно и по другому :)