I think I know what is happening...
I just looked at my configuration and I can confirm that the QR code button is not clickable/grayed-out. However, I added a new peer with a freshly generated private & public key -- this made the QR code clickable. The QR code cannot be generated unless the private key is in the peer config. Under normal circumstances, the private key for the peer is not required (or even desired) to exist in the peer configuration -- only the public key should exist. However, this does actually make sense in that the key exchange is necessary, and this is essentially the only way to generate a scalable QR code that contains all the necessary cryptographic keys. So here, the OpenWrt side is generating the private + public keys for the other peer, then providing a QR code with that info so that the other peer can import that. This is far easier than generating a key pair on the other peer and then moving the public key back to the OpenWrt side.