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