Difference Between render($content['body']) and print $body[0]['value']; in node.tpl.php
You kind of answered your own question. $content['body'] contains everything in a structure in which the render function can turn it into display. This includes all your fields.

print $body[0]['value'] simply prints the value of that one field bypassing any rendering functionality such as "weight". 

Rendering is a fun thing in Drupal, especially when you get to Drupal 7. Think of what you're passing into "render" as instructions on how to output, whereas the value is simply... a string... a value.