En el ejemplo que expones no veo el problema, el tema es cuando es dinámico y granular, igual hay varios ejemplos, te dejo algunos,
http://framework.zend.com/wiki/displ...tabase+backend http://www.zimuel.it/en/a-use-case-o...h-db-and-ldap/ http://codeutopia.net/blog/2009/02/1...-dynamic-acls/ http://www.slideshare.net/wimg/creat...ebinar-8337996 -->
http://www.zend.com/en/webinar/Frame...f-20110615.flv
Con respecto a definir el acl por modulo, ten en cuenta que los modulos de Zend son un chiste, no es mas que una forma de separar bloques de código pero no te permite definir en algun lugar un acl para que el modulo lo utilice, porque el modulo como tal no existe, son second-class citizens, de todas formas seguramente tengas un plugin, bueno ese plugin tiene acceso al request, a traves de este sabes a que modulo intenta acceder el request y en base a esto obtienes el acl.
Sobre el usuario, no entiendo donde tienes el problema teniendo en cuenta que puedes guardar la info que quieras sobre el mismo en sesion, incluso puedes hacer un plugin que en cada request "levante" el usuario y lo sete al frontController o al request.
Saludos.