The strongest boundaries aren't enforced by you—they're built into your process.
When a client asks for another revision, you don't have to be the bad guy. The system says: "We're at milestone 3. Changes now push completion back two weeks. Proceed with delay, or approve as-is?"
Suddenly, it's not personal. It's just how the project works.