Интерпретатор переводит строку к числу, когда у нее первый символ - цифра, если второй операнд - числовой (как в твоем примере). Но я в тех примерах сравнивал по две строки, а не числа со строками.
К тому же, если интерпретатор просто переводит эти строки в числа, то с нулем в начале, он по логике вещей скорее должен был бы считать их восьмеричными числами, но это не так: 0789 - не восьмеричное число.
По сути, скорее всего пхп сравнивает:
'' c '' (пустые строки)
'789' и '789' (именно строки, а не числа)
и строки '00abc' и '0000abc' - при наличии букв нули в строках не убираются, даже если вставить цифры: