Actually I prefer this way of RAM management. The OS should allocate as much of the available memory to the running application in other to maximize performance.
However, once the task has changed, the memory should be re-allocated to the new task.
There's no point in the memory sitting 'free' and not contributing to system performance.