buildutils has several of these features, though I haven't used them all (I use setuptools' PyPI uploading, and don't bother with the announce feature in buildutils either).
I actually want the checkout to be usable -- which means a proper version (which becomes much more important with setuptools and python setup.py develop), so the version fixup has to happen in the repository, not just at build time. There's still versions in the documentation, though. Some of these are unresolveable by any automated process (e.g., NEWS).
Anyway, with buildutils it's a pretty clean release process:
python setup.py svntag --version=0.4.1 --next-version=0.4.2 cd ../Package-0.4.1 python setup.py register python setup.py sdist upload # Then the documentation: python setup.py pudge publish