Checks are inherently different from other transactions because they are a transaction carried out via a physical instrument - the actual, paper check. This may seem like a trivial factor (after all, can't you just scan the relevant info from the check and turn it in to an instant electronic transaction?) but as with many things in life, the devil is in the details.
Besides being physical, some of the elements of a check transaction are manually created by a person writing on a piece of paper. That adds an additional level of complexity, because it makes it really hard to ensure the structure and content of certain information that has a direct impact on the result of the transaction (for example: regardless of what rules say, some banks will handle a check made out to "Mr. and Mrs Smith" differently than one made out to "Mr. or Mrs. Smith").
Finally, check processing is complicated because checks can be created (written) completely offline from the banking system. People carry books of paper around in their pockets, and they can create a transaction on a whim by writing on one of those pieces of paper and handing it to someone! That's pretty hard to handle from a technology perspective, because the bank holding the checking account has no way of knowing that a check has been written. In fact, the bank has no way of knowing if a customer even has a check book, since you can go to a third party, give them your checking account info, and get a book of checks printed without involving your bank!
Finally, since a check can be issued by, and processed by, any financial institution in the country, there has to be a middle man to negotiate the flow of traffic - it wouldn't be reasonable for every bank to have a connection with every other bank and to negotiate the process directly each time a check showed up.
So, while an everything-goes-perfectly check could certainly be fulfilled via some sort of instant electronic transaction at the point in time in which it is cashed or deposited, the "system" for processing checks has to be designed for all the weird edge cases that the above factors can create. This effectively means that there will be at least some degree of delay involved, since the bank trying to process the check will need to rely on other institutions to validate information on the check, and that information may have to be validated manually, and perhaps even sit in a queue for multiple types of validation. The dream of an instant system dies pretty quickly!
But can't we change the system and make it better?
Yes - of course. And, if you look at the last several decades, there have been a steady stream of changes to make the system better for customers:
- Banks are now able to submit digital images of checks through the processing network, instead of actually sending the physical check to the issuing bank.
- Banks are required to turn around checks within certain time frames, depending on the issuer and a number of other factors.
- Banks are required to make a portion of the funds available within a certain time frame, as a way to allow (provisional) access to funds for customers. This can cut both ways, as indicated by your scam example - essentially, this places some degree of responsibility for determining trustworthiness of checks on the customer.
But why can't we just make a sweeping change and restart with a fresh system that's designed well from the ground up?
Mostly because customers who like checks like checks the way they are. If you change any of the fundamental characteristics of a check, it's no longer a check! Ultimately, that's the biggest factor stopping major changes in the way checks are handled. Banks are motivated to improve the system or at least reduce check usage, as check fraud is expensive (a high volume of money lost to scammers isn't recoverable, even if another party - such as the customer - is technically "at fault." But if customers want checks to stay the same, it's hard to force changes.
So where does that leave us?
Luckily, checks aren't the only instrument for people to make financial transactions. And, their usage has dropped considerably in the US in recent years - depending on how you count transactions (and what types of transactions you include), checks make up a single-digit percentage of transaction volume in recent years. This is good news, as the losses due to fraud will drop naturally as the overall volume goes down.
Effectively, what's happened is that totally new transactional vehicles have eaten into the market share of checks. These days, consumers have a dizzying array of choices in terms of how to move their money, and many of those choices overlap directly with transactions that checks used to monopolize. Someone who wants to pay rent to their landlord can certainly hand them a check each month, but they can also do a direct transfer from their bank's online banking portal, or use Zelle, or Paypal, or Venmo, or get a chashier's check, and so on.
So, in a very indirect way, the answer to "can't we just design a new system from the ground up to replace checks?" is yes - and that's exactly what is happening. But, because of consumer demand, the "old" check system has been left intact - and consumers are now able to choose which type of transaction they use for any specific purpose. In the great American tradition, the end result is that people are being given the freedom to do what they want (but, that freedom sometimes comes with consequences in terms of cost, risk, and timing.)