Does it make any difference whether I had used 'number' instead of 'bool' since the bool variables (0 and 1) are a subset of the set of values a number variable can have?
Keep in mind that this is not really a GSX question, but rather a generic question on how XML expression works in FSX, GSX simply pass them to FSX as they are.
What you should use, it really depends on the airplane and how the animation is made. Some developers use a variable as a bool ( hence 0 or 1 ) and define an animation with a given number of frames, for example 100. In this case, their definition might look like this:
(L:MyVariable, bool) 100 *
Their gauge code will set the L: variable to either 0 or 1, and the animation will playback at the speed defined by the <Lag> parameter in the modeldef.xml, because the variable will change from 0 to 1 immediately, but the animation will catch up with it later, following by the <Lag> parameter. This is fine for linear animations.
Some developers would like to have more control, for example having a non-linear animation, one that starts slower and ends faster. In this case, they would not just set the variable to 1 and let FSX doing the rest, but they could control the variable going from 0 to 100 using their own timings. In this case, their modeldef.xml bit will look like this:
(L:MyVariable, number)
There will be no <Lag>, usually, and the gauge code will set the variable from 0 to 100.
This 2nd case sometimes might be interesting to known for GSX customization because, if allows you to write a custom door check expression this way:
(L:MyVariable, number) 90 >=
This means that GSX will wait until the variable will reach 90 ( let's assume the animation ends at 100 ) before considering the door to be open, and this might prevent the vehicle clashing into the still opening door, which might have happened if you just checked for being "not zero", so the GSX vehicle would move immediately after the first animation frame.