Both. Upload and download. Upload speed depends entirely on your networks limitations.
Let's take a scenario. You have an iPhone, an iPad, and a Mac. You enable all of iCloud's features, including Photo Stream. You take a picture on your iPhone of your dog. As soon as that picture is saved to your camera roll and your phone is connected to wifi, it sends it to iCloud.
When you access your iPad, the photo will be there waiting for you under the Photo Stream group. But that doesn't mean it's downloaded to the device just yet. You will first have to tap on the thumbnail to view it and at that time, it will be stored locally on the device. From that point, even if you remove the photo from Photo Stream, say using iCloud.com, it will still be stored on your iPad (and any device that has downloaded the image). Because Photo Stream removes content that's 30 days old, over time, it will be the case that photos may be stored on some devices, but not others.
This applies to your Mac as well. Depending on whether you have enabled Photo Stream in the iCloud preference pane, you'll also need to enable it in either iPhoto or Aperture to fully make use of the service. In the respective app's preferences, you can tweak how it manages the service.
Keep in mind this only works for pictures taken after you've enabled the feature. So if you disable it and take a photo, that remains locally stored, never to be transferred to Photo Stream.
Things like documents and calendars sync instantly. So if you make a change in Address Book on your Mac, the changes will be pushed to iCloud. Once you open the app on your iPad, for example, it will download the updates. It's unclear at this time if Apple's servers push the changes to devices connected to the Internet. Calendar too. iCloud will try to keep all your settings ubiquitous across all your devices so you don't have to worry about syncing or manually transferring the new contacts you added on your iPad to your phone or Mac. It's meant to be as seamless and unobtrusive as possible, and require as little user activity and management as possible.
Now most people are still conceptualizing iCloud as a sync service, but it's not. The master version of any file is kept on Apple's servers, and then fed to any device that needs it (read: any device that is deemed to either not have the file at all or simply lack the updated version). Most people think because you made changes to your calendar events on your Mac, that that data is held as the master and pushed through iCloud to your other devices (this is traditional sync), but that's not the case. It's fed to iCloud yes, but it's iCloud that takes it, holds onto it, and delivers it to any device that needs it; your Mac is no longer involved once it sends the necessary information. It's all iCloud from then on, and this is why you'll be greeted with a notice when you disable the calendar feature on your Mac (or any device) that it will wipe all local content. Since iCloud holds the master files, any device that is detached from the "network" will have their data removed in kind (some, like Address Book) won't but the majority will have their local contents deleted. This serves to strengthen iCloud's control (or dominance in the network) and denounces any device that is removed from its fold, so to speak. And if you think about iCloud as a true cloud service, this makes perfect sense, as you wouldn't typically be disconnecting devices unless they were no longer of use to you (when say you upgrade your iPad 2 to the next generation, or when you buy a new Mac to replace your old one). While critical things will remain (contacts), most files won't survive a disconnection from iCloud.
As for storing backups of your applications, and other miscellany, that too replaces your local content. All your app settings, game saves, etc. become part of iCloud. And again, once they are there, your local data becomes just another extension of the service. You can view what it stores by going into Settings > General > Usage. It will show you a breakdown of your content (and the respective amount of space it takes).
iCloud is meant to replace local data and move everything into the cloud so you can access it from any device and a wireless connection. It de-regulates local data, so to speak, as a result. It's a bit confusing at first, but once you understand the general principle, it becomes much clearer to understand as a whole.