redirect in hook_init makes body text disappear
Okay, got the answer. hook_init() needs to document what functions are ok/not ok to call 

Documention of hook_init() should mention that it's not allowed to call ... node_load() within this hook. 
The correct way to redirect is as follow:

MODULE_menu_alter(&amp;$items) {
  $items['node/%node']['page callback'] = 'MODULE_node_page_view';
}

MODULE_node_page_view($node) {
  if ($node-&gt;type == MODULE_NODE_TYPE) {
    $referenced_node = MODULE_get_related_node($node);
    drupal_goto('node/'. $referenced_node-&gt;nid);
  }
  else {
    return node_page_view($node);
  }
}