As a lone developer this would make a lot of sense - however I'm working with others on these projects so it would be a pain to go this way.
I beg to differ. You and your collaborators could work together on a distributed git repo mirroring sourceforge on the master branch. You would do your collaborative work on various development branches. Someone would finally be responsible to merge the relevant branch to the master branch and then to push the changes to sourceforge. Again feel free to substitute mercurial instead of git.
However, a corollary of this is that it would be neat to be using a distributed system - is there any scope for doing that?