I may update this from time to time.
I went through some issues with EJB3 and ZK. I was using openejb at the time, integrated with tomcat 6. I found that my methods that had role restrictions (using @RolesAllowed) were not accessible. Whenever I clicked a button, an event would be fired, but I would get an error of "Unauthorized Access by Principal Denied", to that method, with a stack trace.
Seeing that my research project is a mini accounting system, I thought it necessary to be able to display items in a status bar, like a real application. It is very slightly unfortunate that ZK doesn't have something integrated right in for this purpose. But, given the versatility of ZK, it's easy enough to resolve.
Once I had some basic functionality in my mini accounting system that I'm writing (for research purposes), one of my goals was to have an adequate error display for the user, that was the same every time. Suffice it to say, I was completely thrilled to find out that ZK could do exactly what I wanted to do, and I didn't have to write an once of code. All I did was write some ZUL, which wrapped a JSP inside of a ZK window. I share how I did that in this post.
I am in the process of working with and researching ZK as an AJAX framework to integrate into Java Web Development that I do. So far, AJAX looks really amazing, and is fully integrated into the J2EE framework. It is an event driven framework that has the option of hooking directly into existing JSP, or entirely writing ZK event handlers to do the processing. There is no wonder that ZK won the Project of the Month Source Forge award.