From a developers point of view (my point of view):
Application's on Android work a specific way, they all have their own life cycle, the main ones we are talking about here is when the application is paused, or stopped (onPause, onStop) and when the application is destroyed (onDestroy), these two states are brought to light in different ways, onPause is when the user can no longer see the application, or screen, this is when the user presses home or clicks something on the screen that takes them to another screen, like pressing a link for example, there is still a possibility of you needing this screen, for example when you press the back button to get back to the screen, you still want it in the same state, so the application is still open and waiting for you to return.
The other state, when the application is destroyed, can happen three ways, firstly the developer might of added something in to close the application automatically, for example the Endomondo application you can press menu > exit, this will "close" the application and it will no longer be in memory. The next way is the user pressing back on it, as in there is no way to get back to the exact screen (for example you can't press forward to get to it) so the application is no longer needed so it is closed.
The third way that an application is destroyed, or closed, is when Android needs more memory, when this happens it clears the applications that haven't had interaction the longest. Android does this itself, if it needs more memory it will get it.
So in all leaving applications open isn't a bad happen, however some applications can still use a lot of CPU power and not memory when its in the background, if you think this is going to happen you should close it yourself, android should be able to pick up on this however
Have a look here at the states of a activity, or a screen:
- Pressing back on a screen: Activity destroyed (
onPause > onStop >
- Swiping application away on recent apps: Activity
onPause > onStop > onDestroy)
- Pressing home: Application
kept in memory, only if the developer hasn't added a self close
onPause > onStop)
- Navigating away from app, link etc:
Application kept in memory, as above (
onPause > onStop)