По-моему, причина довольно прозаическая - JavaScript изначально был спроектирован не слишком верно, и ряд его возможностей стоило бы задвинуть куда подальше, но сделать это из соображений совместимости уже нельзя. Сам по себе этот язык весьма либерален к пользователю, закрывая глаза на некоторые ошибки, допускаемые программистом, начиная от возможности использования переменных без объявления и заканчивая возможностью "забыть" поставить точку с запятой. А строгий режим представляет собой своеобразную таблетку, позволяющую писать более "чистый" код, не разрешая программисту делать некоторые совсем уж нехорошие вещи и приучая его писать корректный код изначально.
А вообще сам факт его наличия является своеобразным признанием допущенных ранее ошибок