the difficulty is calculated in a different way for testnet3.
there is at lest one special case when it falls back to 1. and on top of that there is also some special bug that may kick in each 2016 blocks that nobody seems to understand or even give a shit about
i'm not surprised that there is at least one more on rpc calls.
there is some old topic on this forum where gavin explained how he planted the rules there. or at least what was the plan.
but better look into the code - it's probably easier to find there and also more meaningful.
people do mine on testnet, so we at least know that it somehow works.