When a new node starts up, it initializes its block database with the genesis block, and then start synchronizing. However, it does not add the coinbase transaction from the genesis block to the transaction database. Hence, no client has that transaction in its database, and no node will consider spending it valid.
This may have been intentional by Satoshi, or a bug, but we certainly can't change it now.
Wow, learn something every day.
So is this a client implementation quirk or a protocol quirk? Seems like you are saying it is protocol level since you say we can't change it, but it seems to me like "initializing it's block database" is a client specific thing. Obviously you need 50%+ mining power to have made that change and it seems like, uh, not a priority at all.
Well, as I understand it, it can be changed at client level. So if developers change it in future clients, and people start using those clients, the genesis block will become usable.
However, I highly doubt this will be implemented to the client anytime soon, and even if it is implemented, people will upgrade their clients very slowly.