why are not the 50 BTC spendable?
Good question.
Bitcoin Core maintains a local database of transactions. When it receives a new block, it unpacks it, checks it, and adds all if its transactions to this database. Part of the checking process is to ensure that all of the new transactions are based on older ones (transactions already in the database). Thus, the database contains all transactions from all valid blocks relayed by the network.
However, the genesis block is special in that it is not relayed by the network. Bitcoin Core manually inserts the genesis block into a local database of blocks at the beginning of time. Thus, the one transaction in the genesis block is not automatically added to the local database of transactions.
Of course, we could try to "fix" this problem by modifying Bitcoin Core to manually insert this "transaction" into the local database at the beginning of time. Unfortunately, if Satoshi were to then spend these coins, the new clients would happily accept his transaction into a block just as the old clients would reject any blocks including it. Satoshi would have the ability to fork the blockchain; an unacceptable situation.
so is the total number of "usable" bitcoins, assuming none are lost to accidents, 20,999,950 instead of 21 million?