Vou dizer a minha opinião. Você pode discordar completamente e ainda ter razão.
Veja bem, você está pensando em MVC de forma macro. Quando você diz que o model é o pacote que tem as classes que fazem acesso ao banco, você está separando em camadas e, na minha concepção, MVC não é isso. MVC é uma forma de organizar componentes dentro da mesma camada.
Acho muito mais interessante usar ele em pequenos lugares. Por exemplo: sua view é o Swing (JLabels, JButtons, JTextAreas), o controller contém os eventos e o model representa o bean que está na tela. Veja que não falei em nenhum momento em camada, layer, dao, banco, nada. Esses três componentes podem, muito bem, ficar na mesma classe. Na minha opinião, banco é infra, não tem regra de negócio. E se você for parar pra ver, Swing por si só é MVC.
Claro, nada impede você de colocar o nome dos seus pacotes de modelo, view e controller. Mas não confunda o conceito de MVC com o conceito de camadas. Por exemplo:
- model: Usuário, Matéria, Curso;
- controller: classes que vão delegar pro modelo ou pra infra (por exemplo usuario.isAutorizado(), usuarioDao.salvar(usuario));
- view: visualização em geral;
- infra: a parte mais específica do banco (que lida com drivers ou EntityManagers, por exemplo);
- dao: seus daos.
Em sistemas legados, por exemplo, é interessante mapear a tabela do banco na infra (digamos infra.tabelas) e colocar o modelo em model. Por exemplo, se o nome da tabela no banco é CLIENTE_ALUNO_PROFESSOR (por alguma razão decidiram agrupar tudo numa mesma tabela), você criaria três classes no modelo: Cliente, Aluno e Professor (quem sabe uma superclasse com atributos em comum). As classes ficam mais simples e tudo fica no seu devido lugar.