MS-DOS's batch file interpreter is about 35 years old and has been through countless revisions. It is still the default batch file system for Windows (despite Microsoft pushing PowerShell). And it _still_ has no way to determine whether a batch file executed successfully :(
It's slightly worse if you don't want to always stop, but yeah. I tend to set other variables that adhere to a convention so I can check at the end and do one exit that is "correct". But it's still error prone, because if you ever forget the ||, you're hosed and don't know it :(