It is not easy at all to do what you're trying to accomplish, so you might be novice but not coward :D.
I wouldn't use Devel::Leak::Object at first because you have to provide it with a reference to an object, so you are making assumptions and it can take forever untill you hit the memory leak as spam assassin has thousands lines of code. Here is what I'd do
- run the SA with a minimal setup (no plugins) that would tell me if the problem is in any plugin or the core itself
- If there is no memory leak in the core I'd turn on plugins one-by-one (or in groups) untill I find the responsible of the memory leak
- Once I spot the plugin ( or core module ) I'd read its source code looking for circular references you can use Devel::Leak to help on that
- last but not least at all, I'd contact the developers of SA and will ask them for help as they might already identify problems in other platforms, don't forget they receive hundres and hundres of reports each day