In this test case scenario a function was made to show the differences when querying for node ids. Mostly this kind of query is the first step to render nodes in a custom made view. Each query returns the same array of node ids. Execution times are tested by using the Drupal 7 bootstrap timer functions.
Hook_node_view() can be used to add the block to the renderable $node->content array.
If the weight/order of the extra field needs to be set on the manage display tabs from your article content type, use hook_field_extra_fields() to tell Drupal about the new field.
MYTHEME_preprocess_node is the best solution as it is a theme adjustement. However, when you're using a default Drupal theme, then instead of hacking core, use hook_node_view_alter(&build) inside a custom module.