I don't really see how, it means that code has to handle more cases, which means more branches, which complicates things (and likely introduces more errors), and no such misuse error should occur because these are internal functions. When we're not using them correctly we don't want to hide that behind a return value.