The technique in general is called RSL (something Shared Library, I believe). I haven't worked with them personally, but if no one chimes in here, you should be able to find more specific information by searching for RSLs and Flex. I believe linking against the framework is through the RSL mechanism by default in Flex 4.
Site1, Site2, Site3, Site4 all done with the framework.
If a user was to visit these sites before, then the framework would've been downloaded 4 times.
Now what would happen is once the user visits 1 of the sites, the framework is downloaded that 1 time and can be used by the other 3 sites without having to redownloading the complete framework 3 more times..
FX4 has that ON as default
With FX3 you had to actually to change some options for it to do that.
As previously stated runtime shared libraries are about reducing bandwidth consumption, one way to gauge this is to look at the size of you app(swf) compiled with rsl against a swf compiled with merge code.
A simple merged code app maybe around 450k as a standalone swf and about 150k as a swf using RSL, in this instance the merge option maybe a better choice for low return customer hits as the complete RSL libraries are about 1.5mb.
When you use merge code to build your project only the required parts of the sdk are merged into your swf.
My own thoughts are if it is a true RIA that will have multiple hits from the same user(client) then RSL is the better option as subsequent startup times for the app will be significantly better.
Another benefit of RSL's is that they are not in the regular browser cache but are cached by flashplayer itself so you don't lose RSL's if the browser cache is cleared.