You are doing it the right way, since django itself does it that way. The admin app for instance is registered in
django.contrib.admin, but to reset it you have to use
manage.py reset admin, and indeed,
manage.py reset django.contrib.admin does not work.
It could be considered as a bug in django…
However, you should not be concerned by name conflicts, because you should always run django inside a
virtualenv environment, isolated from the rest of the python installation. This is an immensely more powerful and flexible solution than running django on an ordinary python installation. More info, for instance, here: http://mathematism.com/2009/jul/30/presentation-pip-and-virtualenv/