Hey again (still me :-) will try to contribute some fixes if I can find these days)
checkdata's implementation calls sys.exit, which prevents calling it programmatically with django.core.management.call_command (at least without catching SystemExit exceptions, which could have side effects I guess ?).
As far as I understand, system exit is implemented by BaseCommand, so rather than calling sys.exit, we should either do nothing (on success) or raise CommandError (which accepts an exit code arg).
Cheers