Лучшая причина следовать стандарту - уменьшить фрагментацию стандарта, что приводит к нестабильности.
Если все нарушают стандарт одинаково и это хорошо продумано, тогда это не такая большая проблема. Со временем стандарт будет развиваться, чтобы соответствовать тому, что стало обычной практикой. Посмотрите, как современный HTML отошел от правил комментариев SGML, минимизации тегов и т. Д., И как <! DOCTYPE html> достаточно для запуска режима стандартов. Все они противоречат стандартам, но являются обычной практикой, и теперь новые стандарты (HTML5) даже развиваются для их поддержки.
Если каждый нарушает стандарт по-своему, из-за общей небрежности или из-за желания изобрести свой собственный «хак», тогда стандарт не эволюционирует, а фрагментируется. Браузерам труднее поддерживать все разные направления, в которых люди пытаются взломать что-то, чтобы оно выглядело правильно (или просто из-за небрежных ошибок). До сих пор они проделали хорошую работу, оставаясь обратно совместимыми, но это стоило огромного увеличения сложности синтаксического анализатора. Рано или поздно, однако, перестают поддерживаться менее популярные или более неясные хаки или ошибки, потому что они были просто глупыми идеями для начала (на ум приходят различные хаки CSS-селекторов), или они были слишком далеко от левого поля Элемент 1005 * и т. Д.).