The invariant is the product, so it lives in the contract
Anything enforced in application code is enforced by whoever deploys next. The no-early-release rule is in immutable Solidity instead: there is no admin key, no upgrade path, and the only destinations the contract can pay to are the off-ramp and the fee collector.