Feature flags give you orthogonality.
When you have an `if False:` or equivalent in code, you have to deploy to enable a new feature, so if the current state in the test environment isn't good, you either have to wait for it to be fixed, or to roll back all possibly bad new commits before you can enable the feature.
Another feature of feature flags is that a non-coder can toggle them.
If you need neither of these, sure, go ahead with commits and deployments instead.