no lo estas entendiendo.
false no es lo mismo que
"false". el primero es un boolean mientras que el segundo es un string. la propiedad
async requiere un boolean. si se le asigna un valor que no es boolean, este sera convertido a boolean de acuerdo a su tipo y valor. en el caso de los string, si la cadena es vacia se convierte en un boolean false. lo contrario sucede cuando el string contiene mas de un caracter. a continuacion una muestra.
Código:
alert(Boolean(false)); // false;
alert(Boolean("false")); // true;
alert(Boolean("")); // false;