Many entry fields, only one db request? Craft 101: I have entries with many different fields, so I'm doing something like this:

{% set var = craft.entries.section('foo').slug('bar').first() %}

{% if var %}
  {{ var.field1 }}
  {{ var.field2 }}
  {{ var.field3 }}
  etc...
{% endif %}


Does Craft fetch the entry only once or every time the variable is called? I'm guessing only once but I'm not too sure, and some entries have 50+ fields.
The statement is only executed once. 

You are essentially creating an elementCriteriaModel, returning the first element using the .first() parameter (which in this case is an Entry Model), and storing it in a variable; which you then can use to access your field values. 

If you want to further increase performance you can wrap the whole block in a cache tag, which will speed up subsequent requests.