That’s correct.
If you’re using a solver that requires expression graphs as part of the specification of the input problem (most global solvers do, including SCIP and Couenne), then JuMP needs to see the expressions. This is not possible with JuMP.register. You may specify the constraints using macros or raw expression input.