I am in the habit of using hosted points to host Profiles now. For example, in a 2pt Adaptive with a Reference Line, I will add 2 hosted points to the Reference Line to carry the Profile instances. These hosted points will be forced to the end points by using a parameter for zero, and another one for one, and forcing these values by putting 0 and 1 in the Formula box of the Family Types dialog (see image).
If you are using hosted points (make a new point, and drop it on a Reference Line - it will be come a small dot if it is hosted on the line), you can actually adjust the rotation Angle using a parameter - this makes it easy to rotate the profile around the hosting line.
Here is the really cool part - you can apply a Label parameter to the Profile instance in the host family, and then directly swap Profile shapes (different nested RFAs or types in the same RFA, both work). This even works from the Project Environment.
If you want to drive the profiles parametrically via the host family, you will have to make them un-Shared (otherwise you can't map parameters from Type to Host). You can swap between un-Shared and Shared profiles using the Label parameter.
Finally, to create the form, select the Profile families (the ones at each end of the Reference Line) and click Create Form. Unlike other form creation scenarios, you do not want to select the "lines" by Tabbing through - you actually want to select the family itself. The Label parameter will allow you to swap these families, which will drive the Form.
In the image below, all of these are one Adaptive family - with profiles swapped, and parameters adjusted, including rotation about the axis.
Download the above example here
Credit: I'm fairly sure I read about this general idea somewhere... it was a while ago.