Все это вытекает из цели дизайнера языка «делать правильные вещи».
То есть данный фрагмент кода должен делать то, чего ожидают ни программист, либо случайный зритель фрагмента кода. Это была непростая цель.
Php избежал большинства наихудших ошибок других языков (например, C's if (a = b) {... или perl's if ("xxxx" == 0) {print "True!";}).
0 == 0000 и if ("000") {echo "True!"; } это два из немногих случаев, когда код может не выполнять то, что вы ожидаете, но на практике это редко является проблемой. По моему опыту, «лечение» с использованием оператора точного сравнения === - это единственная гарантия того, что начинающие php-программисты будут чесать там головы и искать руководство.