Not sure about that. There might be some error situations which for example represent only temporal problem and for which it would make sense to wait a second and try it again with the same set options.
(Somebody locks currently something Log needs).
In other situation's you may receive and exception and based on the exception type you reset an option to a different and retry the command (e.g. setch errors "server not available" where you might try again with another protocol).
So in general I think a good contract could be: "Only one succesful call to call() per instance. Or: only one result per instance.

Or?