Isn't it faster to write the image to the backbuffer then grab it back into a new image, rather than move it to a pixmap, change it, move it back from a pixmap?
The problem with doing it this way is that any transforms and filtering (probably tri-linear) will be passed on to the new image. For resizeing, it's probably not a big deal since you'd want some sort of filtering anyway.However, it would generally be faster to do it all in realtime ala. SetRotation.
As for how to free images, that ones real simple. Stop using it. And don't forget to call flushmem once in a while (from as "global" a scope as possible).