Cardano is build on the eUTxO model which it prides to be more robust and easy to think about than the Ethereum account model. When Cardano introduced native tokens it also was proud to announce their elegance and simplicity:
Native support grants distinct advantages for developers as there is no need to create smart contracts to handle custom token creation or transactions. This means that the accounting ledger will track the ownership and transfer of assets instead, removing extra complexity and potential for manual errors, while ensuring significant cost efficiency.
However - and this is a very big caveat - Cardano does not allow transactions that don't also carry a minimum Ada value (which is around 1 to 1.4 Ada). This means that it is not possible to send only native tokens. The sender must also send alongside the native token these minimum Ada to the recepient.
This severely impacts the usefulness of native tokens and forces developers to combine native tokens with smart contracts to work around this restriction. For example, SundaeSwap does not send tokens earned as part of the ISO directly but uses a smart contract where it stores which wallets are entitled to the tokens (see https://www.youtube.com/watch?v=OqNU99s6o_Q&t=1s at minute 12:00). The solution of SundaeSwap pretty much resembles the Ethereum model where a smart contract acts like a central register of who holds how many tokens. It is also a solution that implements an account model, that Cardano views as inferior to the UTxO-model.
So is this the way that Cardano wants their users to go ? Are we all now using the UTxO model only on the surface but then relying on an account model buried in a smart contract to make things work?
Also, why does Cardano implement native tokens when it seems to think at the same time that their UTxO model is not able not handle a possible state bloat due to native token transactions?