Howard Butler gives me something to pin on the Pleiades bulletin board (nothing motivates quite like adversity):
[...] I do have a lot of experience with Zope/Plone, and GeoDjango fills some big holes in the Zope stack when it comes to geospatial stuff that I don’t see ever being filled.
and then goes on to write all kinds of sensible stuff about GeoDjango. I'm not a GeoDjango user, but I've benefited from interaction with the developers. Justin Bronn inspired me to apply ctypes to GEOS (Shapely is in some sense a rip-off of GeoDjango, which was itself inspired partly by PCL's geometry package), and meeting him was one of my FOSS4G 2007 highlights. It's a worthy project.
The biggest reason to go with Django over Zope is, without a doubt, PostGIS: as a open source GIS developer/consultant you've already invested huge amounts of data and brain cells in Paul Ramsey's killer app while developing MapServer maps, and every single bit of this investment carries over into Django application development. You could say the same for Rails. None of your MapServer skills translate into Zope skills.
Of course, PostGIS can't help you at organizational boundaries, and Django doesn't provide "GeoWeb" services any more than Zope does. It's up to GeoDjango to develop WxS (or alternative) implementations.
Here's a disturbing thought: if only MapServer (the CGI program) implemented the Model-View-Controller pattern ... you wouldn't need GeoDjango at all. Or Django, for that matter. Use OGR as your connector to data (geospatial or not), and make entire dynamic "GeoWeb" sites entirely through mapfile configuration and CGI query string parameters.