Question regarding rendering fields in node.tpl.php I'm confused in how the fields can be rendered.
There are 2 variables in node.tpl.php $node and $content, both of which contain fields.
My task was to render all fields separately, to surround them with custom html. First I've tried 

print render($content['field_service_summary']) 


and got 

array(1) { [0]=&gt; array(1) { ["#markup"]=&gt; string(11) "Engineering" } } Engineering 


in result. 

Trying to get rid of that array, I've taken another approach so the code became: 

$field = field_get_items('node', $node, 'field_service_summary'); 
$output = field_view_value('node', $node, 'field_service_summary', $field[0]);
print render($output);


which actually worked, so, to clear this out I have following questions:

1) Where did that array come from when doing print render(content['field_service_engineering']); and how can I get rid of it(I still like this rendering approach better cause it's just shorter) ?

2) Is the second method I've used totally good, with no drawbacks ?

3) What's the point in keeping fields info both in $content and $node especially regarding that in vanilla node.tpl.php only $content is used for rendering fields ?

4) Just my curiosity: in $content array every field has value #object which seems to contain the node object itself. What is it for ?
That should be print render($content['field_service_summary']); (notice the $ sign prefixing the variable name).
It's technically OK, but unless you've customised the preprocess workflow to a large degree, what you'll find at $content['field_service_summary'] is actually the result of a call to field_view_value() anyway, so you're just duplicating logic. If you find that method to be the way forward for whatever reason, at least move it into a preprocess function so it's not cluttering up the template file.
When nodes are loaded, they get field data attached to them. That data is in a certain format. When a field is viewed (e.g. with field_view_field()) that data is restructured into a render array, suitable to be run through render()/drupal_render(). The arrays might well contain the same data in some places, but they're formatted differently for their various different purposes.
It's a reference to the node object. It might be used by a theme/render function, or it might not. Core puts it there by convention. Remember it's just a reference to the object, it's not a duplicate.