A Local Variable's scope is specific that Rule. If the rule runs concurrently, the same local variable is seen by all instances of that rule.
A global variable can be accessed by all rules, and can even be manipulated by other Apps, like the Dashboard, on the hub using a 'connector', IIRC. See Connect Global Variables to Dashboards
In early versions of Rule Machine, Private Boolean was the only variable available whatsoever. Rules had special features that were tied to the Private Boolean variable. As you've noted, it could be used to restrict the running of a rule, by having other rules manipulate a rule's PB.
These days, you can still use a PB to restrict the running of a rule, by simply using it as a Conditional Action as demonstrated below.