It seems that the --max-children option doesn't do as one expects, since spamd now uses a preforking. And it seems that the processes are not limited at all.
Are you sure? Are there more than 5 spamd's in ps ax?
Really, with the prefork model, 5 should be the hard maximum (as well as the minimum most of the time).
You mentioned there being more than 32 db connections, I just want to check if it's really 32 spamd's running, or if there are 5 spamd's running and someone's not closing SQL connections.