I looked at the bottlecaps code, for reward it is based on height:
int64 GetProofOfWorkReward(unsigned int nHeight)
{
int64 nSubsidy = 0 * COIN;
if(nHeight < 240)
nSubsidy = 1 * COIN;
else if(nHeight < 480)
nSubsidy = 2 * COIN;
else if(nHeight < 720)
nSubsidy = 3 * COIN;
else if(nHeight < 960)
nSubsidy = 4 * COIN;
else if(nHeight < 1200)
nSubsidy = 5 * COIN;
else
nSubsidy = 10 * COIN;
return nSubsidy;
}
but all the calls are actually based on nBits
if (pblock->IsProofOfWork())
pblock->vtx[0].vout[0].nValue = GetProofOfWorkReward(pblock->nBits);
so I don't think anything other than 10 coins are executed. Looks like a bug.