Does Algorand have a clear-cut distinction between ALGO and ASA tokens?

I would love to have single system for managing all assets as well… It gets even more complicated in smart contract where you have to do a lot of if token is 0, then do pay else do axfer… Or to get the balance of the account and so on…