Scanning an on-screen QR code is usually done with barcode scanners, not with phones. Typically, barcode scanners are doing the decoding on-device, and passing out keyboard data (their drivers usually identify them as USB HID). Unfortunately, most scanners don't have loads of onboard processing power, though ability to deal with damaged linear barcodes has been quite good for a long time. Damaged 2D barcodes are harder to deal with, and while ML may be able to solve that, it would require a paradigm shift in how barcode scanners operate -- and essentially bifurcate the market, as some scanners would simply no longer be compatible with embedded systems, and would require specialised software to function (which isn't really ideal; most users of barcode scanners want them to be plug-and-play).
(My first post-university job was doing tech support for a company which sold point-of-sale equipment. I'd say about 50% of my job was helping people with barcode scanners.)