I think this pretty much sums it up. As you said, performance is often better locally. Hence the reason why IT departments are switching to cloud-based apps isn't because it's better for the user, it's because it's easier for them. With cloud-based apps they don't have to worry about maintaining Suite X on many different local machines, often with different hardware and configurations, and thus with many different sets of issues. And pros who work in businesses run by those IT depts. have no choice but to go along.
I.e., while there are obvious exceptions (you have a job that requires a computer cluster, or your local machine is old and slow), I'd generally characterize cloud computing as convenience, consistency, and cost (for businesses) winning out over convenience and performance (for their employees).
The above were general comments. But let me also offer a specific example that I acknowledge won't have general applicability: Some of the computations I run in Wolfram Mathematica take several hours to complete (I'll just run those overnight). By contrast, for Mathematica online, Wolfram has a 10 minute computation time limit (and most computations in Mathematica are not parallizeable, so if it's several hours on my machine, it's also going to be in the hours range on their cluster). You can request additional computation time, but who wants to have to bother to do that each time?
And it's not just apps that often perform better locally; this applies to storage as well. For one of my jobs, I'm required to save all files on a shared drive, which makes perfect sense. But it's also a PITA. When I trying saving it to the share drive through their VPN, it takes several seconds, during which the document is unavailable. For my work flow, I want to be able to save repeatedly while I'm working on the document without any interruption, which I can only get locally, where saves are essentially instantaneous. Thus, if I'm going to be spending a day working on a document, I'll download it from the share drive, work on it locally, and save it to the share drive at the end of the day, rather than working on it directly in the share drive.
In many ways cloud computing seems like a regression to me, back to the days before we had PC's, when one used a a dumb terminal connected to a mainframe.
You make some very good points, and the last sentence struck a chord.
I'm a big proponent of cloud computing, but accept that my view comes from my professional perspective and readily admit that it's not a silver bullet for all cases. However, the user experience is getting much better, and it will become much more widespread.
I generally deal with the creation or migration of enterprise applications to public cloud platforms. In nearly all cases, these applications would already be running on physical or virtual servers running in a data center (or on-site server room) and managed either directly by the owners, or by contracted service providers. The applications are mostly multi-tier web-apps using back-end services such as databases, network storage, integration services and virtualized networks. There are some apps that use remote desktops or Citrix-like interfaces.
For a lot of "business" software, particular software that has any customizations from the standard product, this kind of remote access has been the norm for many years. It relies on low latency network connections, but the actual performance can be very fast, because it depends on the power of the back-end servers (which can be scaled appropriately to give fast response time) and the speed of the client interface (often the web-browser), which are also pretty snappy these days. There is no inherent reason why this should be any slower than software installed locally, assuming sufficient network speeds. Consider streaming on-line gaming services such as Shadow, which provide an experience close to running a graphically intensive game installed locally. Remote desktops (Virtual Desktop Infrastructure) can be a bit underwhelming sometimes compared to a fast local machine, but it's mostly quite good if you give them enough memory. As you say, this is
very similar to client-server apps that used to run on mainframes.
Where cloud computing is less compelling is in cases where high storage or data bandwidth is required, i.e. moving large amounts of data very fast. Cloud computing is great where most of the data stay on the backend server (which has fast direct or network storage), but if you have to push it to and from your client computer over the internet, it falls short in some cases. Saving a few documents to Dropbox, OneDrive, iCloud etc. might work quite well, but editing a 50GB video file will not be a great experience for most of us without a 5 Gbps internet connection (which is just about everyone).
Additionally, the cost of storing data online (currently) exceeds the cost of local storage by a fair margin. I recently bought an 8TB HDD for about $200, which I would hope to last about 10 years. Online storage over 10 years would cost a lot more - and be limited by my internet bandwidth c. 5MB/s vs 200MB/s on my local machine - no contest!
I'm not familiar with Wolfram Mathematica, but I'm surprised it only has a 10 minute online computation time limit. I'm used to cloud platforms being scaleable "on demand", to whatever you need (provided you want to pay for it). 128 vCPU machine with 2TB RAM? no problem - yours for about $5 / hour. Again, there is a break-even point depending on your computational needs. If we need to run a 16-core desktop machine flat out for 10 hours a day, 300 days a year, for 3 years, then it probably makes financial sense to own the machine. If you only those 16 cores for a few weeks or months, then it's almost certainly cheaper to "rent" the time.
You are absolutely correct, that cloud computing is about providing benefits to businesses:
1) Reduce capital costs (buying expensive hardware up front) and convert to operational costs.
2) Greatly reduced management and administration overhead - up-time, security, patching, backup etc. all become someone else's problem (for a modest price)
3) Much easier centralized client management - only need to have a basic machine image with minimal client software
4) Cheaper client machines - most of the work is done server-side.
For typical business productivity tasks, the user experience isn't bad, and is only likely to get better as network infrastructure improves.
Having said all the above, I personally like to have a powerful client computer, because I hammer my machine with memory, storage and processor-intensive applications such as video editors, but most business users are not doing this during working hours ;-)