If you mean large proportional to the page in the example, it's because I resized the "certificate" so that a huge image isn't loaded. I didn't scale the QR code down so that the image doesn't have to be zoomed in for the QR code to be scannable.
"Large" in terms of number of modules. In particular, that code is so bloated that it needs more than one little "eye".
You can pack a UUID worth worth of unique bits in a "version 2" QR code. Everybody on Earth could get billions of unique QR codes and you never need more than that. If the codes are randomly generated you would need to try quadrillions of them to guess one.
People who use iDevices usually print QR codes that don't read on Android and other devices for quite a few reasons:
* The QR code spec says you can print a white QR code on a black background but if you actually try it you'll learn it isn't true
* Most Android devices have crappy cameras that can't focus on close targets: QR codes in magazines are often printed so small that if you get close enough to read them the camera can't focus on them.
* Android devices don't have a built-in QR reader so people download adware and spamware QR readers that are often poor quality. For instance, many of them require a lot more contrast than is specified in the spec, which is super-generous.
My design rule is version 2 QR code, at least one inch square, and I am still experimenting with color in contrast to maintains scalability. This kind of QR code is fast and fun to read and really lives in both the physical and digital world. Bloated codes just don't scan for many people.