Is asset creation and transfer in a single transaction group possible?

I think the answer is no*. In order to opt in the user would have to sign the transaction with the asset id.

*There is at least one way around it, namely rekey the users account to the application address and create inner transactions that opt in and transfer but its not a method I’d recommend.