What does the entity_view function do? After reading the documentation and searching through code, I can't quite figure out what the entity_view function is for. 

The documentation explains it executes the view callback if defined, with a fallback to the entity controller's view function. Since I use the EntityAPIController I want to use that view function, that adds a similar structure like below. 

So I assumed entity_view is to replace a structure like this (part of a page callback).

// Prepare the entities
entity_prepare_view('entity_type', $entity_field_query_result);

// Apply theme to all entities
foreach($entity_field_query_result as $key =&gt; $item) {
  $entity-&gt;content = array();
  $entity-&gt;content += array(
    '#theme'     =&gt; 'my_entity_theme',
    '#element'   =&gt; $item,
    '#view_mode' =&gt; 'full',
    '#language'  =&gt; LANGUAGE_NONE,
  );
  $render[$key] = $entity-&gt;content;
}
return $render;


Thus I've replaced that with 

$render = entity_view('entity_type', $entity_field_query_result);

return $render;


This however shows an empty page, where the previous function showed me a list of entities. I have custom themes applied to these entities as follows, could that be an issue?

function my_module_theme($existing, $type, $theme, $path) {
  return array(
    'my_entity_theme' =&gt; array(
      'variables' =&gt; array('element' =&gt; null),
      'template' =&gt; 'my_entity_theme',
      'path' =&gt; $path . '/template',
    ),
  );
}


So, is my assumption on entity_view correct, or am I missing steps to come to a renderable output?
A EntityFieldQuery doesn't return fully loaded entities as result.
Try running the query result through entity_load('type', $result['type']). Then you can render the resulting entites through entity_view('type', $entities).

Here an example:

$query = new EntityFieldQuery();
$query-&gt;entityCondition('entity_type', 'node');
$query-&gt;entityCondition('bundle', 'article');
$result = $query-&gt;execute();
if (!empty($result)) {
  $entities = entity_load('node', array_keys($result['node']));
  return entity_view('node', $entities, 'full');
} else {
  return array('#markup' =&gt; t('No article nodes found.'));
}