When a .rar is deployed, the RARDeployer constructs an MBean of type org.jboss.resource.deployment.RARDeployment of the name jboss.jca:service=RARDeployment,name=JNDI_NAME
When a -ds.xml is deployed, the XSLSubDeployer constucts an MBean of type org.jboss.resource.connectionmanager.RARDeployment, which is the ManagedConnectionFactory for ConnectionFactory JNDI_NAME. This MBean depends on jboss.jca:service=RARDeployment,name=JNDI_NAME.
This is the difference between the new RARDeployment and the old RARDeployment. The new one is created via XSLSubDeployer, while the old one is created via RARDeployer.
In order to create connection factories programmatically, we'll assume jboss.jca:service=RARDeployment,name=JNDI_NAME exists via the RARDeployer, and create org.jboss.resource.connectionmanager.RARDeployment.