Who is it for?
I've been working on some cloud stuff recently and been around a lot of other people working in various associated areas and the point that I have reached is that I just don't know who it is better for.
It is hard to develop for the cloud- way harder than regular client-server or application development - and debugging any code running in the cloud is a massive pain in the ass. You have so little control on your application's environment that you need constant fault-tolerance.
It is hard to maintain applications in the cloud- most of the things that matter in terms of system maintenance are outside your hands so if something isn't working you are stuck with raising support tickets for your friendly local provider to ignore and then in a few weeks time tell you it was fine anyway. When the service goes down ( and it inevitably does ) then your product is unavailable.
As a consequence of these, applications developed and hosted in the cloud are often fragile and inconsistent. This makes the end-user's experience less pleasant and it is easy for hard-to-reproduce situational bugs to arise.
So it is hard to develop for, hard to maintain and tends to create unreliable user experiences.
I'm not saying that there is no benefit to a cloud-style approach for some applications, but in most cases I can't tell who the cloud is supposed to be for.