Hi Adam,
First, I would recommend keeping pulldata options separated in multiple questions - the form processing API doesn't spot pulldata functions that do not begin a question, potentially leading to missing references to the tables.
Second, it sounds like what you want to accomplish can be done through either if() or coalesce functions.
if() allows you to specify two different results, depending on whether a given is statement is true. Let's say you have pulldataA and pulldataB and you're checking to see if the feature should look from A or B:
if(${typeQues} = "typeA", ${pulldataA}, ${pulldataB})
if questions can be nested to add additional branches
coalesce will return the first non-null value from two questions. If a pulldata fails, it will have null value (nothing). in that case
coalesce(${pulldataA}, ${pulldataB})
will return pulldataA if that succeeded or pulldataB if pulldataA did not succeed but pulldataB did. Like the if statement, these can be nested.