Concordo com você Luca, no aspecto de separar o sistema em camadas, seria mesmo o ideal. Mas concidere as seguintes peculiaridades do meu caso :
Me foi pedido o desenvolvimento de um sistema especifico, mas quero levar a coisa de uma maneira para que possa com esse trabalho criar uma ferramenta mais poderosa e flexível, para comercializa-la depois.
No momento, meu cliente não tem um servidor web próprio, e mesmo a porcaria do vb ( no meu caso pra dar exemplo simplista falaria no clipper , porque do vb odeio até o nome :mrgreen: ) atenderia-o bem. E ele não exigiu nenhuma linguagem específica, a propósito.
Quero aproveitar a oportunidade de desenvolvendo o sistema para o cliente, aprimorar meus conhecimentos em java.
É uma aplicação desktop, rodando em uma rede (interna ) com 10
usuários.
A única coisa que ele deseja é acessar os dados de qualquer lugar, quando necessário. Pensei até no caso de disponibilizar apenas alguns relatórios em html estáticos mesmo, gerado pela aplicação.
Pelo volume de dados que ele vai lidar, não posso deixar que meu sistema pareça ( aos olhos dele ) excessivamente pesado. Por exemplo, instalar tomcat na rede dele e disponibiliza-la para o mundo, por
exemplo 
Anteriormente desenvolvi uma aplicação desktop para rede local usando swing+hsqldb , e quase não percebi perda de performance no acesso aos dados, além de todas as demais vantagens de usar um servidor de banco de dados. Sei que assim dá pra fazer, mas quero dar um passo à frente, sem que haja perda de qualidade no produto final.
O que já assimilei disso tudo :
:idea: Vou dividir o sistema em camadas de qualquer maneira, mesmo que rodando somente na rede local.
:idea: Vou usar o hybernate, para depois facilmente poder trocar de banco de dados, conforme o caso.
:idea: http sempre que possível para comunicação com servidores externos.
E todas as dicas para esse meu início de trabalho dos feras do guj, serão muito bem vindas, claro 
[ ]
Adriano