According to BIP0070, if I understood it correctly, the outputs with amount set to zero should be valid:
"If the sum of outputs.amount is zero, the customer will be asked how much to pay, and the bitcoin client may choose any or all of the Outputs (if there are more than one) for payment"
The current implementation raises this error: "Requested payment amount (0.00BTC) too small"
This happens either with non signed or signed payment requests.
There are some use cases where I believe it would be useful to have zero amount outputs, for example having a donation payment request available for anyone who wants to donate or using it to send valid M-N scripts as a payment method. The signed Payment Request would still allow to verify the identity of the recipient.
Be aware that solving this would probably increase the priority of this other bug: #2936 Which I have just updated with more information.