The special case for the genesis block (it is not connected in the normal way, resulting in its coinbase being unspendable by definition) was not always enforced. When reconstructing the coins/ directory, it was connected normally. Beside being incorrect, since #2145, this resulted in a segfault at startup.
This generalizes and simplifies the code for dealing with the special case, by moving it to ConnectBlock itself.