C'est propre et couramment utilisé le ~login. Je ne vois pas où est le problème. 
Si tu veux des adresses sans ~, tu peux tenter un truc du genre :
alias.url += ( "/toto/" => "/home/toto/public_html/" )
Note : c'est repris d'un lighttpd.conf, à voir comme ça s'adapte à apache.
Au passage :
Etch 
Passe à Lenny, ça fait plus d'un an que Etch est obsolète.