PostgreSQL offers more than one way to replicate, and the choice is usually made early. Someone picks a method during the first architecture pass; it works, and nobody revisits it. The constraint shows up later.