Частое использование important это нормально?
Скажем так — каждое появление !important в коде требует объяснения. Ещё раз повторю — каждое.
Использование любого повышения приоритета в проектах, будь то !important или атрибут style (что даёт одинаковое повышение), или сразу оба (ахтунг!), или id (меньше по силе, чем любое из предыдущих) — всё это требует объяснений. Почему?
А вот почему — есть плагины и модули от сторонних разработчиков и любое повышение приоритета сужает поле для манёвра. И это ладно, если селекторы у вас уникальные, но я же натыкаюсь вот на такое:#content li{
	list-style: none !important;
}
И за такие фокусы надо отрубать руки. Да. Или лишать премии. Но лучше отрубать. Шучу. Только одну.
Мое мнение, с которым, возможно, многие не согласятся: important - это инструмент, которым, естественно, можно пользоваться. Но, как и любым инструментом, пользоваться им нужно с умом. Important придает правилу максимальный приоритет и никогда и никем не перекрывается. Это может привести к проблемам при наследовании правил, при назначении свойств элемента из jacascript и т.д. Однако, именно это иногда может быть очень полезным. Приведу пример:
HTML:<div class="block block--removable">
    <div class="block--removable__remove-button">&times;</div>
    <div class="block__content"></div>
</div>
CSS:.block--removable {
  position: relative;
  padding-right: 10px !important;
}
.block--removable__remove-button {
  position: absolute;
  top: 0;
  right: 0;
}
В этом примере есть правило, обеспечивающее отступ для крестика. Этот отступ должен присутствовать всегда, в любых условиях, иначе верстка поедет. Для этого оправдано использование important.
Important не стоит использовать для перекрытия одного свойства CSS другим, лучше в таком случае повышать приоритет правила другими способами. Вот отличная статья про приоритеты в CSS: htmlbook.ru/samcss/kaskadirovanie