Parametric inner constructor inherits parameter from global scope

This does seem like an antipattern. In general, you should not be relying on globals for local effects – especially when those effects are not necessary.