IS there a replacement for 'taxonomy_node_get_terms_by_vocabulary' in Drupal 7?
I don't think an EntityFieldQuery would work in this case as you'd be trying to reference two types of entity in the same query (which cannot be done currently). The easiest way would be to build up the query yourself:

function taxonomy_node_get_terms_by_vocabulary($node, $vid) {
  $terms = &amp;drupal_static(__FUNCTION__, array());

  if (!isset($terms[$vid])) {
    $terms[$vid] = array();
  }

  if (!isset($terms[$vid][$nid])) {
    $query = db_select('taxonomy_term_data', 'td')
      -&gt;fields('td', array('tid'))
      -&gt;condition('td.vid', $vid)
      -&gt;condition('i.nid', $node-&gt;nid)
      -&gt;orderBy('td.weight');

    $query-&gt;join('taxonomy_index', 'i', 'i.tid = td.tid');

    $terms[$vid][$nid] = taxonomy_term_load_multiple($query-&gt;execute()-&gt;fetchCol());
  }

  return $terms[$vid][$nid];
}