You can charge transaction fees to base account, if you use it as a channel to submit transactions. Possible if you control wallet software. Or you could add yourself as signer and sign transactions on user behalf. But it doesn't help with requirement of keeping 20 XLM + 10 XLM for trustline as account reserve for each of your users.
I'm just using 1 account for everyone to avoid that.
I'm not aware of any way to charge transaction fees for your asset, unless again you are in some multi-signrature scheme with the user, so you can initiate payments from their account, but they can't without you.
Can't think of anything else right now.