Interesting point. I suppose it's mostly about *not* passing around copies of a list that can be retrieved canonically from apps.get_app_configs(). The "None means everything" approach is also consistent with the way   management commands have handled app targeting. 

However, passing in a full list of apps breaks the dependency on the apps singleton, which would be a good thing, and it makes the implementation of each check function easier. I'd be interested in hearing other opinions on this.