i think some of the confusion is from what people consider "closed", as well as the android activity lifecycle state (see image below from google/android). It appears to me that if the app has had onstop() previously called it will then call ondestroy(), but it the app is not in the onstop() state it won't affect the app. Ergo the confusion as to whether "close" means stopped or destroyed. If you look at
activity | android developers, the only process states that are "killable" are onstop() and ondestroy(). So my guess would be is that this is what the recent app list is looking at in determining what action to take with swiping off the list. (and maybe an important coding note re onstop() vs onpause() for anyone coding apps who want to maintain a persistent state?)
so yes, swiping "closes" an app that has already been stopped and relegated to cache (onstop() state, whose memory would eventually have been claimed when needed by another app), but does not "close" an app that is currently "running" (not stopped). So the recent app list swipe action is dependent upon the app's current state, sometimes "closing" the app and sometimes not, as opposed to being a traditional "task killer". Fair enough?