I have a same problem, that Zoiper occasionally fails to re-register after a lost connection.
The reply, from the Dev on Google Play:
"Zoiper does reconnect in background, but sometimes android tells us the network is up before it is, leading to a failure. It will auto retry though "
But why does Zoiper fail sometimes, whereas e.g. Sipdroid doesn't have that problem?
I prefer Zoiper about Sipdroid, but always checking Zoiper's connection state, or missing incoming calls, is definitely no option!