By looking for the variable that is associated with Settings > Developer Options > Background Process Limit (seeline number103) and (Seeline number215) called mAppProcessLimit.

With that in mind, keep looking further down in the source, the routine that is responsible for saving the settings for this particular screen called onPreferenceTreeClick.

That is, in programming parlance, called a "listener" that is monitoring the changes made on that screen and writes it out immediately to the backing store by Android. (See between line numbers790 and 858)

Unfortunately, the "listener", in this case, does not have a reference to the persisting/saving of the value for that variable mAppProcessLimit; which is what the OP is experiencing, set it for the duration of when the handset is alive, then upon reboot, it gets lost.

In short, you cannot do anything about this as that is built straight from the oven, and bundled onto your handset, but with that in mind, you can roll-your-own-custom ROM variant of ICS with a modified version of the source to do that.

I have written a small android app that can be used to set the process limit by using Java Reflection to access the internal API. On Android 4.0 you don't even need to install it as a system app. This is required for Android 4.2 or so onward.