I know that you can create a new account but I am not sure if this can be done
No, Because when you deploy another smart contract it will override first one. as one blockchain can have only one smart contract. But in future when we are playing with multichains may be at that time we will be able to do that.
But in case of inline function you can create an account with in smart contract