What actually happens when you swipe an app out of the recent apps list? The recent apps list in Ice Cream Sandwich added the ability to swipe apps out of the list, thereby dismissing them permanently (and as far as I know this is a vanilla function, not a CM/custom ROM one). The documentation and platform highlights don't appear to cover the under-the-hood workings of this functionality, but I'm curious to know what the system is actually doing. 

Further adding to my curiosity, I decided to do a quick test: I started up Music on a CM9 install, then backed out of it. I then checked the recent apps list and saw it was indeed there (and in the proper state, based on the thumbnail). I then went into Settings-&gt;Applications and force stopped the Music app, but it was still listed in the recent list, leading me to believe it's not connected to processes lingering in the background.

Realizing now that Music may have been a poor choice, I also tested with the USA Today app. This exhibited basically the same behavior, and it seemed like it was forced to "relaunch" after the force stop (which makes sense) though the thumbnail in the recent apps list didn't reflect this (cached, I'm guessing?).

So, what actually happens at the OS level when you swipe an app out of the recent list? Does it simply clear the app's data out of RAM and garbage collect it, destroying its saved state?
I appear to have found the magical search terms that led to some explanations from Google employees. Specifically, I found a couple of different places where Dianne Hackborn explains what happens when you swipe something out of the recent list. The first is a comment on one of her Google+ posts:


  [W]hat specifically happens when you swipe away a recent task is it:
  (1) kills any background or empty processes of the application (see
  http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html#Lifecycle
  for what this means), and (2) uses the new
  http://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent)
  API to tell any services of the application about the task being
  removed so it can do whatever it thinks is appropriate.


She also notes in a blog comment:


  Actually, removing an entry in recent tasks will kill any background
  processes that exist for the process.  It won't directly causes
  services to stop, however there is an API for them to find out the
  task was removed to decide if they want this to mean they should stop.
  This is so that removing say the recent task of an e-mail app won't
  cause it to stop checking for e-mail.
  
  If you really want to completely stop an app, you can long press on
  recent tasks to go to app info, and hit force stop there.  For stop is
  a complete kill of the app -- all processes are killed, all services
  stopped, all notifications removed, all alarms removed, etc.  The app
  is not allowed to launch again until explicitly requested.


So, it looks like the summary is that swiping an app out of the list will first kill all background processes for the app, then use onTaskRemoved to notify the app that the background task was removed. At that point it looks like it's up to the app to decide what happens, so I guess there technically isn't a hard-and-fast rule about what happens to the app beyond that point.