Completion files can be conditionally loaded based on scopes. I think it'd be useful to be able to specify a context too.
For instance, Django development and plugin development are both two types of Python development, but you don't want completions for one to clutter completions for the other. If you could say "setting.django_dev" in the completions file, this would be avoidable.
I think this approach is better than using on_query_completions for large sets of completions. Perhaps there's a better way to do this now, but I can't figure it out.