Currently, ZFS has very rudimentary protection against 2 different nodes having the same pool imported at the same time based on checking the import status and the host id. This information is written to the vdev label when importing or exporting a pool.
However, this can be easily overriden by an inexperienced user and does not provide any protection when doing failover. If 2 different nodes manage to have the same pool imported at the same time, the result could be catastrophic corruption.
A safer and more reliable implementation would use other algorithms to provide this protection, one of which could consist in using a low-overhead heartbeat mechanism.