Ah, eu sou um idiota. Acontece que eu tinha outro thread executando algum código de teste ao mesmo tempo. Portanto, houve um processo simultâneo que modificou o banco de dados no intervalo de tempo que levei para examinar o cursor e, em seguida, extrair os dados dele.
Este é um exemplo interessante de como o cursor é preguiçoso e que o próprio objeto cursor não é apenas um array simples.
Abraço, -Peter