ExecuteQuery() в любом случае вызывается. Только после вызова research() устанавливается внутренний флаг, по которому ExecuteQuery() во вновь создаваемый QueryRun передает Query() из предыдущего экземпляра QueryRun
А сам этот вопрос с такой завидной периодичностью возникает, что его, по-моему, надо вывесить на главной странице