Why most of pubkeys in the first batch of blocks in blk00000.dat are different
The original Bitcoin software (and even the current Bitcoin Core) always used a new private key (and thus public key) for every transaction. Keys were never reused. Since the Coinbase transaction for each block is a new transaction, the software would use a new key for each one. It is the same behavior as asking for a new receiving address; a new one will be generated and given to you.