How it really works is that the operating system manages notifications and updating app badge numbers. If you force quit your Skype and Facebook apps via iOS’ task manager (ie: double tap the home button, tap and hold app, and tap its [x] button), notice that you’ll still receive push notifications targeted for those apps and have their app badge numbers updated, even while they are *not* running in the background. This proves that it’s the operating system that is applying the badge numbers. Those apps are never started in the background when a notification is received… and that’s the main point I’m making. iOS apps are *never* notified when a notification triggers while the app is running in the background. iOS apps are only notified when the app is running in the foreground or when the end-user taps on a notification, which launches the iOS app.
Anyways, I hope this helps.