Мое мнение, с которым, возможно, многие не согласятся: important - это инструмент, которым, естественно, можно пользоваться. Но, как и любым инструментом, пользоваться им нужно с умом. Important придает правилу максимальный приоритет и никогда и никем не перекрывается. Это может привести к проблемам при наследовании правил, при назначении свойств элемента из jacascript и т.д. Однако, именно это иногда может быть очень полезным. Приведу пример:
HTML:
<div class="block block--removable">
<div class="block--removable__remove-button">×</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