Strictly speaking, only answer b should be correct. In the
EJB 2.0 specification, the Bean Provider is just someone who provides EJBs, and thus, does not need to link beans together. However, the Application Assembler is a person who binds beans together in order to build up a concrete application. Agreed, sometimes the Bean Provider and the Application Assembler are one and the same person, and thus, the roles are somehow mixed. The only mention about the Deployer having something to do with the ejb-link element is made in section 20.3.3 of the spec where it is stated that the Deployer should bind the EJB reference to the home of the EJB specified as the link's target.
To sum up, the Bean Provider only provide isolated beans and does not wire beans together. Thus, no need to mess with ejb-link.
The Application Assembler is the one who ties all beans together, and thus, he needs to provide the ejb-link element.
The Deployer's role is limited to binding references to the respective EJB homes for each ejb-link element.