En realidad no tiene que ver con apuntadores de memoria. Si fuera ése el caso, esto daría un resultado diferente:
Código PHP:
<script type="text/javascript">
var foo = [0];
var c=foo;
console.log(foo == !c);
console.log(foo == c);
</script>
El tema tiene que ver con la conversión automática de tipos dependiendo del contexto. Una excelente explicación de esto la da Dmitry Baranovskiy aquí:
http://dmitry.baranovskiy.com/post/o...ascript-part-i