I haven't read the text that you are referring to, but can hopefully impart a vague/handwavey understanding of why constraint branching is a powerful technique.
Consider a large set partitioning problem for scheduling nurses.
If we were to solve this with variable branching, each branch would be akin to saying something like "nurse 1,543 can/cannot work shift 16,325". Each branch in this instance has only a minor effect on the overall soution.
Instead, we can use constraint branching, which allows us to make many changes at each branch. We do this to force more integrality into the solution.
The "imaginary variables" y_ij which we define ourselves and branch on can be chosen from a row coverage table. Given we have a fractional set of x variables, y_ij is the fractional amount by which we satisfy constraints i and j together. While you are right that this is "one variable" that we are branching on, it will have a much larger effect on the solution.
For instance, if we 1-branch on y_12, then we ban all columns that do not satisfy constraints 1 and 2 together. A method for picking a y_ij to branch on is whichever is closest to being integer (but still fractional), preferring 1-branches to 0-branches.