ok, you can't do all three without actually recompiling the swf....well.... you can, but if you set your program up right.
You can use a database.
Have the swf read from the database to know what images to display/load
and what data to show. So your swf would be built around loading info from a database, and never have to change itself, just retreve what it should do.
Now, if what you mean is that you want users to be able to get the lastest update you uploaded without having to clear their cache, you want your server to always load up a fresh file of the .swf, in case you change it. then it's simple.
Append a unique number to the end of the call for your swf:
Code:
var randomTime = newDate().getTime()*Math.random();
<object......... src="myswf.swf?randomTime">
</object>
With something like that, your server will always serve up a fresh version of your swf.