Ease of deployment is the key
There are many reasons why Flex is growing into a popular platform for creating RIAs: familiarity, great framework, simple yet powerful, etc... But the most important one I believe is ease of deployment. Think about it, even without the server component (now even that is free, see BlazeDS), you can create something pretty compelling. Case in point, just this week one of my work colleagues decided to dive head first into Flex. He comes from a Java/Swing background and started building a small application to learn the ropes, an album manager/viewer for his family and friends. He is loving it, but the best part is that he is going to make it available to his family and friends by hosting it on a server he is already using for other things. Nothing special for him to do, just drop the SWF file on the server and everyone can access it, thats how easy it is and that is why Flex is so successful. Could he have done this so easily in Swing? Nope, the client install would have been tedious, not impossible, but still quite an effort. The small footprint of the Flash player and seemless install is what makes this all possible. Who would have thought 10 years ago the little Flash Player would have been this powerful... great things come in small packages.