Как показывает опыт - огромное количество ошибок вызвано неучтёнными эффектами в другом "конце" программы/системы. Документация далеко не всегда помогает
Программист может не выспаться, ему по дороге на работу могут на ногу наступить или ему может быть просто сегодня лень и т.д. - вот и неучтённые эффекты.
Компилятор же всегда выспался и ему никогда не лень.