How do I alter a view query to use "OR"?
This is untested, but I think what you want to do within your alter function is along the lines of this:

function mymodule_views_query_alter(&amp;$query) {
  unset($query-&gt;where[0]['clauses'][2]);
  unset($query-&gt;where[0]['clauses'][3]);

  $query-&gt;where[1] = array(
    'clauses' =&gt; array(
      0 =&gt; 'node.promote &lt;&gt; 0',
      1 =&gt; 'node.sticky &lt;&gt; 0',
    ),
    'type' =&gt; 'OR',
  );
}


This is essentially moving the promote and sticky clauses into a new where grouping, and by setting the type to 'OR', it should work the way you outline in your question.