1) Persist form just saves the entire form into a single session variable so you don't have to save them all individually.
2) The pp confirm page should have the process transaction server behavior as well as save in database for paypal. Authenticate is the first step in the process before you can process.
a) Yes
b) Yes and to calculate shipping or tax costs based on the shipping information
c) Yes as well as do the process server behaviors for credit cards
d) Yes
Changes
a) You could update the javascript to not hide the billing fields for paypal. Ultimately it is going to use the billing information from paypal however, so I'm not sure why you want to ask for it on your site as well.
b) confirm_cart is for shipping calculation
c) Yes
d) By default it is guest checkout. You can add login and pre-fill the fields as well as save the UserID from the session into the orders table if they choose to log in.