A ver, no entiendo muy bien que es lo que te marea, pero como te dije antes el router por defecto de Zend mapea module:controller:action, entonces supongamos que tenes un module login en el cual en el index controller index action muestra el form, para acceder seria
  http://proyect.local/login/index/index o simplemente 
http://proyect.local/login ya que por defecto mapea al index controller accion index. 
mapea a:    
Código PHP:
Ver original- class Login_IndexController extends Zend_Controller_Action 
- { 
-     public function indexAction() 
-     { 
-         $form = $this->_service->getForm(); 
-         ... 
-     } 
- } 
supongamos tambien que tenes un module clients con un controller index y una accion list donde se muestran todos los clientes, para acceder seria  
http://proyect.local/clients/index/list 
mapea a:    
Código PHP:
Ver original- class Clients_IndexController extends Zend_Controller_Action 
- { 
-     public function listAction() 
-     { 
-         $clients = $this->_service->fetchAll(); 
-         ... 
-     } 
- } 
pero lo que debes entender es como mapea el router, no es mas que esto: 
module:controller:action 
Con respecto a si un module debe tener obligatoriamente controllers, la respuesta es 
NO, te dejo un 
link de una implementación de widgets(con un module que no tiene controllers). 
Saludos.