Yes for now the wallet has to specify outputs explicitly. BIP70 doesn't have any kind of generation support in it at the moment. Besides, they are supposed to expire after a while to let wallets forget keys.
Well, the idea is out there. Judge for yourself:
http://thisapp.io/ connects bitcoiners with merchants in a way that clients pay the merchant that in turn deducts it from money that was handed to him by a promoter. Imagine the promoter fronting $1000 to a café. It might take 100 transactions until the debt is settled. It might take less. Sure it would be possible to work with a static address or a hand full of addresses but what would really make sense would be to use a generator that the promoter transfers to the merchant who in turn presents addresses to his clients.
WRT NFC - you can also use Bluetooth to transfer the payment request. Andreas Schildbach's wallet and derivatives support this.
Ah, true, haven't thought of that. Wonder how commonly they are used, though.