Doesn't sound easy to me!
In a typical block of code, you do some work, then check for an error, then do some more work, then check for an error.
It's very common that by the time the code is done, there will be as many as a half a dozen different error cases in a fairly short routine, if I'm dealing with user data.
It strikes me that your strategy will require half a dozen levels of indentation. Is this so? Can I see examples of it?
Overall, your argument relies on claims like "exceptions are enormously expensive" - claims which require proof.
In C++, turning on exceptions in the first place adds a small but significant overhead to everything. There's a good case to be made for not allowing any exceptions at all, but that means you can't use any library that throws exceptions, and you need to guarantee that if you call functions from `std` that you don't raise any exceptions.
This is quite an undertaking, because I have done it.
If you are already compiling with exceptions turned on, like 90% of C++ developers, throwing an exception is cheap, and can be significantly cheaper than returning if you have a significant stack.
In Python, exceptions that aren't ever thrown cost nothing. This is true of many other languages. The whole point of exceptions should be that they are for exceptional conditions that almost never occur.
You seem to have a religious aversion to exceptions. I'll bet it makes your code harder to read.