Há algo no código que eu demorei a entender como podia estar funcionando. Talvez alguém tenha a mesma dúvida, por isso estou colocando aqui:
Criamos uma variável local "AlunoDAO dao" dentro do AgendaApplication.onCreate(), e a populamos com os dados de teste.
Eu não estava entendendo como esses dados de teste estavam sendo lidos de dentro da classe ListaAlunosActivity, se ela por sua vez possui o seu próprio AlunoDAO privado.
O segredo está dentro da classe AlunoDAO, cujo atributo alunos está como static !