Currently, saving multiple locations from an online contribution form w/ a PayPal Pro "Billing Block" fails because the billing block is not assigned an explicit Location Type when the form is created. Also, there is no way to handle cases where the Billing Name ("Name on Card") is different from the name of the contact making the contribution (or the member name, etc.).
Include a new reserved location_type - 'Billing' - to our fixed data (civicrm_data).
Modify the code which builds the Billing Block form elements to automatically assign the "Billing" location type to the address fields.
The First and Last Name fields in this block will no longer be linked to the individual.first_name and last_name properties for the contact. They are specifically intended to collect a "Billing Name" (Name on Card). These values will be posted to PayPal, and then saved in the Location Name property of the contact's Billing location.
NOTE: With the above approach, if a site wants to collect contact First and Last Name, they would do so with a Profile. Alternatively, we could automatically include two sets of names in the Billing Block - friendlier for setup but less flexible.