2
The BIP70 specs I'm reading confuse me about who broadcasts the underlying transactions to the bitcoin network. My reading seems to suggest that both the user's wallet and the server at the payment_url do.
Is that true, or is it the user's wallet unless a payment_url is specified in the payment request, in which case the server at the payment_url does?

Yes. I've now proved by experiment that the Bitcoin Core wallet and the Android wallet broadcast the transactions as well as sending the BIP70 Payment to the URL specified in the Payment Request. This seems an odd design to me. If there was a communication failure or similar the merchant might not get the notification and will end up with a payment he maybe can't reconcile? Am I missing something here? – Colin Messitt – 2015-05-24T11:21:05.183
@ColinMessitt actually, in the event the Merchant doesn't recieve the Payment, it doesn't reply with a PaymentACK, then the Wallet could (and should) notify the user so that they could speak to the Merchant themselves. – Amin Shah Gilani – 2015-05-24T12:17:30.470