Really? Why in the world would you need to handle your existences of the files on your own? This is really bad to do since if can get you in many memory leaks. Your thinking is kinda just wrong at its roots and you should really look into C++ and what the current directions for memory management is (e.g.
RAII). Judging from your code and mentioning of SDL I guess you're still a bit stuck in the C world.
Next I'd suggest you to use SFML 2.0, since it has a way better API and less bugs.
So now to your (self created) problem. The thing that objects that go out of scope are lost isn't special to SFML but it's a standard C++ thing. It's a good practice to do so.
You can already use new and delete directly on a sf::Image class, so your wrapper class is kind of useless.
sf::Image* img = new sf::Image;
img->LoadFromFile("hello.png");
delete img;
// Instead of
texture* img = new texture("hello.png");
delete img;
But I really advice you not to use such code!
What would you except happens if you delete a texture and then draw the sprite? I'm glad it just shows a white rectangle instead of crashing complelty since the reference to the texture just leads into nothing. If you pass a texture/image to the sprite it sets its size and if the texture isn't valid anymore it will keep the size but instead of drawing the image it will draw a white rectangle.
What do you mean by one sprite for all images? You don't draw images/textures directly you always need to reference a image to one sprite, so no this is not possible.
In SFML 2 there's a VertexArray with which you can draw multiple textures with one draw call.
My advice to you: Get a modern book about C++ and read some stuff about memory managment on the internet, then eventually look into some modern C++11 memory managment.
Desperetly haning onto the old ways of C isn't good at all.