BuenAS:
Por un lado, aclarar que cuando utilizas "@Embed", la imagen se INCRUSTA en el swf cuando se compila; ya sea si lo utilizas directamente en un mxlm como a través de css.
Flex tiene la posibilidad de dividir tu aplicación en módulos e ir cargando los que se vayan a utilizar en cada situación. Es bastante largo de explicar cómo se utilizan, por lo que te remito a la ayuda de Flex.
Por otro lado, no sé si te refieres a trabajar con bibliotecas compartidas. O sea, varios swf's van a compartir determinados assets (imágenes, botones, gráficos vectoriales). Sólo uno de ellos lleva dichos assets, y el resto accede a ellos una vez que el primer swf (el contenedor) está en la caché. Flash Professional tiene un assistente que te permite hacerlo casi automáticamente: decides qué swf va a actuar como "buque nodriza", creas los assets en su biblioteca, y vinculas el resto de bibliotecas de swf's a esta biblioteca.
Finalmente, y siempre que no haya problemas de crossdomain, por lo que si vas a probar con esto, sería recomendable que el swf que vas a cargar esté en el mismo dominio de seguridad (cuando funcione, ya lo cambias y tal

), puedes cargar un swf desde otro y llamar a funciones del primero para obtener sus assets. Esta técnica se ha utilizado bastante sobre todo en el tema de juegos.
Así, sí en el A.swf hemos implementado el método:
Código ActionScript :
function obtenerImagenFondo():Bmpd
{
return new ImagenFondo();
}
donde ImagenFondo es una imagen exportada para ActionScript que está en la biblioteca de A.swf
Si cargamos A.swf, desde B.swf, una vez que se produzca en evento INIT (no es necesario esperar a COMPLETE), podemos acceder al método obtenerImagenFondo(), que nos devolvería una instancia de ImagenFondo.
Vuelvo a repetir que si vas a utilizar esto último te asegures de que cargas A.swf dentro del dominio de B.swf; si no te va a empezar a emitir mensajes de error de seguridad del SandBox.
Un saludo.