Go Errors are Joha's Nail

Go's error handling has been a subject of criticism numerous times. While I appreciate its simplicity of treating errors as values, Rust's Result type is undoubtedly superior, but that ship has long sailed. Regardless, errors in Go are not just "simple values".
Joha
Joha, a legendary character in Middle Eastern folklore, was often depicted as a wise fool. One of his most famous stories is when he was approached by another man who wanted to buy his house. Joha didn't want to sell his house, but the man kept insisting. At one point, Joha was in a financially unstable situation, so he reluctantly sold the whole house with everything except a nail that was on the wall and must never be moved in any way. The new owner accepted this condition. Every day, Joha would come to visit and check on his nail. The new owner was not fond of that and offered to buy the nail, but Joha refused. The new owner even tried to resell the house, but no one would buy it, including Joha. In the end, the new owner gave Joha the house back for free. Since then, "Joha's Nail" became a phrase used to describe whatever trivial thing that can be used as an excuse.
Go Errors are Simple Values
is the phrase used to reject an error-handling proposal that tries to introduce a language change. The most painful point about Go errors is when they need to be delegated, they take the 3 famous additional lines.
if err != nil {
return err
}
The Rust way is a simple ? that checks for the error on Result type and returns immediately if any. Proposals that suggest similar checks are often refused mostly for not being clear that a flow change is happening, which is a philosophy that Go follows, except in panic and recover (which were introduced after the Go 1 release.)
Errors, not any values
Sometimes, proposals get rejected because they don't account for errors well. An example is this proposal which aimed to introduce a form of chaining that handles Go's way f1(f2(f3(input))) to f1(1) -> f2() -> f3(). The rejection was based on not supporting error handling very well and also the voting.
Just a Rant
I happened to need a chaining-like functionality, that would have been enabled with a proposal similar to the one above or by Type-Parameterized Methods, the latter admittedly a difficult one. I like so many things about Go, but sometimes I wish I had those in a newer language, something I'm not willing to do myself, at least not currently.
