Does views load all nodes in a result or just the ones in each page of results? I am trying to determine if I am going to see a performance impact. I have a view that can possibly return thousands of results but only displays 50 per page. Each node in the result determines it's proximity to the current user using geofield. I want to know if it's going to try and do it for every node in the result, or just the ones in the current page.

So, does Drupal load all of the nodes in the results or just the ones in the current page?
When you display a certain number of records per page it does not load and hide the extra records, it simply never pulls them from the database. So you'd certainly be helping performance by limiting the number that are displayed per page.

In fact, if you look at the SQL query generated by the view, it'll say the following if you're showing 20 items per page, for example:

...
LIMIT 20 OFFSET 0
...


====================== EDIT ====================

What this means for performance

As @Clive and I were discussing above in the comments, A LIMITed query will inevitably be faster than one with no LIMIT, but overall performance will also inevitably decrease as the number of nodes you are searching through increases.

Limiting the number of returned records has performance savings on the Drupal side too, though.  That's because Drupal wouldn't be running the additional processing on the Drupal side to do things like access checks, pre-processing and other display-related functions for the records that aren't returned by the query. 

==============================================

p.s.  You can configure whether you want Views to show you the sql query it's generating by going to /admin/structure/views/settings and checking the 'Show the SQL query' checkbox in the 'Live Preview Settings' section.