This type of thing (scan QR code) is how basically all payments were done when I was recently in China, via wechat or alipay (either you show your QR code for big shops, or scan their QR code for small shops / vendors. They can just print them out if they want and hang a copy).
I found it superior to other systems I've used in basically every way. Particularly for small market stalls -- I scan their QR code, I enter how much I want to send them. They never get my details, I don't have to trust they didn't fat-finger the price. It also makes it amazingly easy to send money to friends, just scan their code and send them their share of dinner.
To me NFC is superior. It checks all the boxes you mentioned plus quicker / last steps
I would claim the main cause why it is more complicated is having VAT and KYC/AML requirements. Transactions can be much easier if you ignore the VAT requirement.
It has massive perks, especially in regions where the transaction fee or exchange fee scams run.
(Basically they have a reasonable price showing and when you pay with a credit card you see your banks charges you a huge amount. It can be as simple as in Mexico $ is used for pesos so if the merchant actually charges you USD that's 20x or so rip off).
But... This isn't mutually exclusive, why can't I set a price on my smartphone when I pay by contactless?
The other benefit is that there QR codes are bank transfers. Which have substantially less recourse and less rights for the consumer. Probably doesn't matter for a $10 sandwich but still significant.