Usability: When it comes to Usability there would be differed thoughts from various developers. Flex has a rich set of behaviours as you said, there are many other tints that you can add using Flex. With AJAX, GWT you can acheive most of what Flex does, so i wont really comment on unsability.
Learning: From a j2ee developers point of view, GWT & AJAX are the technolgies which most of them would like to have it in their CV's. Flex is a bit difficult to learn and there are many other issues which comes up while development which might eat up most of the development time. For example, Client Browser Cache issue. With dynamic flex component on a web page browser cache needs to be cleared if you make some change to the component's code.
Integration: I have worked with both i have found it easy to integrate AJAX. With Flex there is a overhead of having flex installed on the server.
Maintainence: Since Flex itself is framework with .as and .mxml files, it is easy to maintain, but the drawback remains. Client cache needs to be cleared all the time you make any changes to any of the Flex files. With AJAX changes can be done on the fly without effecting the server or the client.
i would vote for AJAX and GWT.
Any sufficiently advanced technology will be used as a cat toy. And this tiny ad contains a very small cat: