Fields was used (useful) in regular client-server topology when the network bandwidth used to be the bottleneck sometimes... it actually means the only the fields you specify will be passe on the client side (plus those that need to identify the record if not already specified).
Things have changes a bit in the meantime in terms of network bandwidth but still the help mention this "Specifying a field list (field-list) for record can increase the performance of remote (network) record retrieval substantially over specifying record alone."
What I do find confusing is the usage of FIRST... looks to me you are getting a single record using the PK, if that is not the case why is that first record so special than the others? Plus this will behave like a FIND in terms of buffer scoping, the buffer will still be available after the for block... consider changing this to 'for each'