On the iPhone OS, your view may get unloaded (under low memory conditions), but if you have state that you care about in some of your views connected to outlets, you don't want to lose it. So you want to retain them.
Say a navigation controller. The root view gets unloaded from a low memory warning sent to the controller but there is a bunch of controller above it on the stack. When you pop back to root, it reloads the view and sticks your outlets back where they were in the same state they used to be in.
At least, I think this is the technical reason.
But in a more general sense, your controller cares about these views, because it wants to interact with them. And that fact alone means that you want to retain them, and release them when you no longer care. It's just good practice.