I think one of the factors working against the QR code is it does not have a recognizable uniform function. The code can contain an text or data in any number of formats which isn't apparent to the naked eye. The text might be a URL, or it might be a poem, or it could be a vCard.
This causes consumer confusion. It's almost like we need standard contextual decorations around the QR codes to hint at the contents. Like how http, www, and underlining tell people a string of text is a web URL.
Or maybe just new, incompatible subsets of QR codes that have an unmistakable appearance and purpose. Sometimes connectors both physical and virtual are designed on purpose to be incompatible even though technically it's all just hollow tubes or copper wires.
I would maybe liken QR codes to SGML. We need something more like HTML. Limited but with a standard interpretation that everyone can understand.