Why do ICs have NC (No Connection or No Function) pins?
There can be several reasons.


It is easier/cheaper to use standard packages than custom ones. So if you need 4 pins, but there is a standard package with 5, you have one spare. With large packages you can have many spare pins. Removing the pins or designing a package with a custom number of pins would be very costly in terms of set-up.
They may have been used during development/testing
You might have different versions of the same series part. Some in that series might have more pins than others, so the ones with fewer pins have N/C's
You might want an oversize package for thermal performance (or size of die), and as a result you end up picking a package with more pins than you need.
The chip manufacturers packaging factory may only support a few different packages, so there may not be one available with the correct number of pins, so you go up a size.


There are probably many more, but my fingers are tired.



You may then ask, why not just connect them to something? Well, that requires more time wire bonding. It also means an increase in silicon size if you have to add the additional bond pads to the die. There may be performance related issues with bonding the extra pins (stubs in high frequency circuits?). And so on.