As noted by many, the phrase "cloud computing" is ambiguous enough to encompass everything (and therefore nothing). I think at the very least we should be discussing the cloud in terms of connections that terminate there. That is, we should think of cloud computing as providing services for either the connection source (e.g. virtual desktop infrastructure) or a connection destination (target servers).
If the service happens in the cloud, but operates on traffic that is just passing through the cloud, I don't think it should be a part of "cloud computing." That means that proxies and other inline security functions are not "cloud" proper since the termination points are still very traditional.
This is not really a strong position, so I would be curious to hear reasons against this position.
Personally, I don’t see “cloud computing” as being limited to just the endpoints. I typically think in terms of on-premises (behind the firewall/in your own datacenter/etc) versus hosted (cloud/SaaS/PaaS). So in the hosted or cloud world, I would propose extending the definition to the stack of services that enable the cloud application. For example, the “cloud application” may be a hybrid of a hosted website where the application UI/business logic lives and a hosted “cloud” database where the data is persisted (e.g. Amazon EC2/S3 or Microsoft SDS). There *may* be Cloud middleware and Cloud monitoring involved, again hosted sw services, that are being used to monitor, manage, and backup the data involved in the transactions. All that should fall under the umbrella of “cloud computing” (IMO).