Как достигается переиспользование стилей во Vue?
Вам ничего не мешает делать по старинке: один глобальный файл с глобальными стилями.
Ну, или иначе. Если вы хотите инкапсулировать стили — тогда все они дожны быть внутри компонентов. А если у нас есть две совсем одинаковые кнопки, которые отличаются лишь цветом + находятся в разных компонентах?
Глобальные стили или отдельный компонент с кнопкой.Как наиболее правильно с точки зрения good practice назвать имена классов?
На самом деле как вам удобно. Лично я использую следующий паттернclass=" component-root <component-name>-component-root "UPD.
Если есть необходимость передать какое-то свойство в нутрь компонента, то можно сделать это через кастомные свойства:<style scoped>
.button {
    color: var(--text-color, green)
}
</style><button-component style="--text-color: blue"/>
Посмотрите вместо VUE.JS библиотеку с одной функцией includeHTML.
Это будет значительно проще использовать для вашей задачи, чем vue.js