Cardano is a multi-asset ledger so there are multiple types of “native tokens” where ADA is the primary and people can make their own as well. The OP in the reddit post used the term faucet in the sense of dynamic distribution of a token more so. They may also be a little confused as:
Blockfrost is a 3rd party ecosystem API best used for “read-only” operations (someone correct me if minting policies etc are possible)
Scanning for payments at an address and sending tokens back is possible with or without Blockfrost in many ways.
Plutus has very little to do with either of the previous things as neither requires a smart contract. Plutus could be used if more power and control where needed like validating only one token per customer, minting on demand, some other kind of swap, time-lock, vesting, raffle, etc.
Cardano has the possibility to mint, transfer, and burn tokens other than ADA built directly into the protocol. Those are “native tokens”.
Most other blockchains do not have that. There, other tokens are managed in the data of a smart contract. This would also be possible in Cardano and would be “non-native tokens”. I haven’t seen that used up to now, though.
For this topic it is quite irrelevant. The testnet faucet just distributes tADA, no native tokens and also no non-native tokens.
Some token creators want to distribute their tokens widely to make them known. So, they give them away almost for free with such faucets or with ISPOs or via DripDropz.
Blockfrost can be used to submit transactions, also minting transactions.
True, but if you do not use something like Blockfrost or Koios, you have to have a Cardano node running somewhere. If you are not a pool operator that are considerable resources.
Most of these services are probably written without contracts, but contracts could be used to give additional assurance that if you send ADA to the faucet, you will really get StrangeToken back. If contracts were less complicated, that could even be best practice.
I also initially thought/hoped that smart contracts/Plutus could be used to automatically react to payments to the contract address. Then they could really remove the need for custom code running on your server, watching payments, … Unfortunately, that’s not possible so easily.
All in all, the OP does not seem that confused to me.
This topicIS confusing because it is asking about what someone else was asking about!
The user symensays on reddit screenshot seemed to be confusing multiple different unrelated ideas.
The user jordan_deli here seemed more interested in the feature of “token distribution” to me.
Multiple users have tried to clarify different parts of both the queries and responses