Io credo che un altro dei motivi è che l'80% delle persone che utilizzano PHP nel web neanche sanno cosa è una classe e cosa è un gestore degli errori o eccezioni e cose varie; quindi alla Zend preme davvero poco avere un linguaggio pulito e che segua una logica ben precisa.

Mentre riguardo al tuo problema ti consiglio di usare un qualcosa di un pelino più articolato, come minimo:
Codice PHP:
set_error_handler(
    
create_function('$errno, $errstr''throw new Exception($errstr);')
);

try {
    
$buggy 5/0;
}
catch (
Exception $e) {
    echo 
$e->getMessage();

almeno sai che tipo di errore stai avendo. Però forse sarebbe bene scriverti una intera funzione per gestire gli errori e poi associarla con set_error_handler() in modo da darti informazioni dettagliate sul tipo di errore, dove si è verificato e cose simili.