hm... hier würde ich erstmal unterscheiden zwischen FD und EBC. das eine ist methode/konzept für den entwurf von software, das andere implementationsanleitung für den resultierenden entwurf. EBC ist weniger wichtig als FD. also: nicht in einer konkreten form verlieren (implementationsdetail), sondern konzentrieren auf das konzeptionelle. denn ohne das konzeptionelle kannst du mit EBC zeugs basteln, was gar nicht die vorteile bietet, die FD bringen soll.
komponentenorientierung: würde ich komplett rauslassen. hat nix mit FD zu tun.
MDA: FD ist ein modellierungsansatz. also kannst du da auch überschneidungen/abgrenzungen suchen. aus meiner sicht ganz klar trennend ist, dass FD ein ganz allgemeiner modellierungsansatz ist, während MDA immer wieder spezielle modellierungssprachen sucht. so ist zumindest mein empfinden. außerdem hat FD nicht den anspruch, ausführbaren code generierbar zu machen. dafür ist die detaillierungstiefe zu klein. FD ist also nicht "computationally complete" oder so ähnlich :-)
FBP ist auf concurrent processing ausgelegt, FD nicht speziell. EBP ist vor allem implementationsansatz, weniger konzept.