hmm no, non è proprio esatto

quando calcoli un or, se una delle espressioni è vera, l'or restituisce sempre true. Quindi, è inutile andare a calcolare N espressioni in or quando la prima è vera...

quindi, se chiedi a php di calcolarti $a || $b, se $a è vera non andrà mai a calcolarti $b, perchè sarebbe uno spreco di tempo e risorse. Infatti, come hai detto giustamente te, nell'esempio c'è isBuggyIe() || ob_start(..), e tu hai detto "se isBuggyIe è vera allora ob_start parte"... se non fosse come dico io, l'affermazione tua sarebbe errata perchè cmq php andrebbe a testare il valore di ob_start

con && non succede perchè bisogna sempre testare i valori di almeno le prime tre espressioni della condizione per sapere se è true o false ( vero && falso = falso, ma vero && vero e falso && falso = vero)

per farti un esempio, esegui

Codice PHP:
<?php

function a1(){ echo "a1 executed"; return true; }
function 
a2(){ echo "a2 executed"; return false; }


if(
a1() || a2())
        echo 
"c'è";
else
        echo 
"non c'è";

?>
e vedi un pò che output ti torna

ps: e chi l'ha mai letto il manuale... o almeno, non per queste cose