The background data restriction setting is enforced by the OS (so it's not for the app to decide whether to observe that setting). Put in easy words: Android won't let an app access the network unless it's running in foreground (i.e. the user is interacting with it) with the restriction enabled for it.
There are two kinds of data sinks when it comes to mobile devices. First, there’s the obvious user-driven data consumption, or, foreground data. When you watch a high-quality video or download a new album, you’re directly contributing to increasing your data usage.
Less obvious to most people is the fairly large amount of behind-the-scenes data churning through your connection—the background data. Polling for Facebook updates, high-frequency email inbox checks, automatic application updates, and other background activities can put a real dent in your data allotment.
Even apps that don't allow you to fine-tune data settings could still be loading background data. In Ice Cream Sandwich and later versions of Android, one way to find out which ones are guilty is to go to SETTINGS > DATA USAGE, and scroll down to reveal a list of apps with accompanying data usage stats.
Then, tap an app to view its usage data, and take a look at the two numbers next to the pie chart. "Foreground" refers to the data used when you're actively using the app, while "Background" reflects the data used when the app is running in the background.
If you notice an app is using too much background data, scroll down to the bottom and check "Restrict background data." Just note that this setting overrides any conflicting app behaviour (like an app that would otherwise update your bank account info every few hours).
TIP: Best to completely disable or switch off Background Data..By Abraham Andagali