Por que certas chamadas de função são chamadas de “invocações ilegais” em JavaScript?

Por exemplo, se eu fizer isso:

var q = document.querySelectorAll;

q('body');

Recebo um erro de "Invocação ilegal" no Chrome. Não consigo pensar em nenhuma razão pela qual isso seja necessário. Por um lado, não é o caso de todas as funções de código nativo. Na verdade eu posso fazer isso:

var o = Object; // which is a native code function

var x = new o();

E tudo funciona bem. Em particular, descobri esse problema ao lidar com documentos e consoles. Alguma ideia?

questionAnswers(3)

yourAnswerToTheQuestion