Let's say I have a billing agreement, which I just executed on the callback from the PayPal site:

resource = BillingAgreement.execute(token)

The resource returned does not have any payer information (name, email, etc).  I can use the ID to load the full BillingAgreement:

billing_agreement = BillingAgreement.find(resource.id)

That returns successfully, but the resulting object also lacks an payer info.
This seems like a critical oversight in the REST API's design.  If I just got a user to sign up for a subscription, don't I need to know who they are?  How else will I send them a confirmation email, allow them to cancel later, etc?
Thanks for the help!
Got a reply from PayPal support.  Apparently you can take the same token you pass to BillingAgreement.execute() and pass it to GetExpressCheckoutDetails in their classic API.  I tried it and it works.  It means you have to use both APIs (which we weren't planning to do) and store both API auth info, which is annoying.  Hopefully they'll fix it someday, but if it's been high-priority for two months I'm not holding my breath.
In the PayPal REST API, how can I get payer information from a newly executed BillingAgreement?