Lo sapevo che sei un grande...
Infatti mancava quell'ultimo accorgimento:

Codice PHP:
// strings tyecasting as boolean values:
function bool($var) {
    switch (
$var) {
        case (
strtolower("true")):
            return 
true;
            break;
        case (
strtolower("false")):
            return 
false;
            break;
        default:
            die(
"
\n[b]Warning:[/b] Invalid argument supplied for "
.__FUNCTION__." function in [b]".__FILE__."[/b] on line [b]".__LINE__."[/b]: the argument can contain only 'true' or 'false' values as a string.
\n"
);
    }

Ora è perfetto, grazie.
Peccato che non sia implementata nel core di PHP.
Provo a segnalarlo per una futura release di PHP5.