Why would the body field's language not save as the same language as the node?
By default, drupal sets 'und' as the field language, that is LANGUAGE_NONE. So, when you print_r($node), you will see a field with something like $node-&gt;field_name['und'][0]['value']

Now, when you enable translation on this field, the 'und' will get replaced by the language code and somehow the $node structure would look like $node-&gt;field_name['en'][0]['value'] where 'en' is the language code. Your body field will now have 'en' as the language and won't be empty anymore when rendered

For your question above :


  I am having a problem where the user is creating new nodes and entering body text, but setting the nodes to "language neutral" for the language. Yet when it saves the node the body field's language gets set to English. Why would this be happening? What would cause this?


Check default language of your site, if its set to English, then probably Language Neutral will take your site's default language.