Your first question is basically, "Why do I have to match variables and equations in MCP?" Essentially, the bounds you set on the variables and the matching you choose between variables and equations influences the set of solutions for the MCP model. If you choose one matching, you get one solution. If you choose a different matching, you may get a different solution. These choices are one part of the model-building process.
A quick example is this: assume you have a production level x and a marginal revenue function f(*) (f depends on x and perhaps several other variables). You want to match f and x in the model statement:
model m / f.x, blah.u, blahblah.v, ... /;
If f is zero, you satisfy the solution criteria for the pair f.x. But what if you have a contractual obligation to run at a nonzero production level, say L? Then you set x.lo = L. If the optimal production level (marginal revenue equals 0) occurs with x > L, this is still a solution. But what if the optimal production level is less than L? If we use the negative of the marginal revenue function for f, then our pair f.x will push the value of x at a solution up to L, where f will be positive (assuming some nice things about the marginal revenue function).
The interaction of matched variables and equations, and the bounds on these variables (zero or nonzero) are at the heart of MCP modeling. This is what makes the MCP framework powerfully useful.
For a full description of what a solution to an MCP model is and how variable bounds and equ/var matching influence this see the GAMS User Guide:
https://www.gams.com/latest/docs/UG_Mod ... Models_MCP
Finally, here's a quick example illustrating that the choice of matching can lead to different solutions.
Problems with syntax of GAMS