You can leverage field_attach_load() for this:
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node', '=')
->propertyCondition('status', 1, '=')
->propertyCondition('type', 'wall_of_words', '=');
$result = $query->execute();
$nodes = $result['node'];
// Get all fields attached to a given node type
$fields = field_info_instances('node', 'wall_of_words');
// Get id of body field
$field_id = $fields['body']['field_id'];
// Attach a field of selected id only to get value for it
field_attach_load('node', $nodes, FIELD_LOAD_CURRENT, array('field_id' => $field_id));
Now you have $nodes
array of "half-loaded" nodes, where you can get your field data from like it were a usual node, just do something like this:
foreach ($nodes AS $nid => $node) {
print $node->body['und']['value'];
}
Note. I used 'und' for language here. You may want to query for node language field here to get a dynamic language data if needed.
So this should work.
UPD. One note to this. field_attach_load() doesn't invoke hook_node_load(), so if some data is being manipulated via hook_node_load() you won't get its representation via described method. This is the only drawback of this method. But in most cases it is safe to use. Just check if it works in your circumstances.
->entityCondition('bundle', 'wall_of_words')
is preferred over->propertyCondition('type', 'wall_of_words', '=')
for limiting to a particular content type.