Forgive the double post, but to further the idea, here's a way you might utilize this (as I've done more testing and it works very well...) without having to remember what the frame was a sprite was created on. It'll eat up memory with one more variable, but hey... what's one more in the grand scheme of things?
Before creating your sprite, set your variable to the frame you're about to use.
spritecreateframe = 3
sprite = Sprite.Create(spriteframe,spritecreateframe,0,100,100)
When that sprite needs to be freed, just set the frame back to where it was created beforehand, without going through your script to find what frame it was created on:
sprite:SetFrame(spriteframe,spritecreateframe)
sprite:Free()