fatalError("Returned multiple objects, expected max 1")
What is the point of this? Why set the fetchLimit to 2 and then fatal error if two objects are returned?
The point is to assert an assumption.
You are right, that you could just limit your query result, but that would potentially mask a serious problem. So this is a pretty good safeguard to have.
So why not use assert, or just throw an error so that the calling function can choose to crash if it's appropriate?
Well, how would you recover from this error? This is really an error in the programmer's logic if this happens, so not recoverable at runtime really. You are of course free to change the logic yourself, if you think this can be handled differently. Nothing wrong with that.