2pc is only safe if every part of the system has guaranteed uptime, which it never does. Assume that cross-shard transactions only work in the happy case and may result in inconsistent data otherwise.
They also reduce the benefit of sharding, possibly down to worse performance than a non-sharded DB.
They also reduce the benefit of sharding, possibly down to worse performance than a non-sharded DB.