I really want to post a screenshot of my uber-shader which utilizes like 500 (Float, Bezier, Etc,.) Controllers to really drive home the idea Controllers are not meant for this :- ). And I use that for 80perc. of my material library.
So in more complex answer:
1) Obviously controllers work as well when hidden, what would be their point otherwise :- )? But when they are hidden, they can't be instanced properly. This may be current Slate limitation, haven't tried 2024 if the new one is constantly aware of hidden parameters.
2) When they are unhidden though, they created absolute mess, simple 5 texture Shader takes full-screen page. That's the whole point of hidding additional parameters. You don't want them to be unhidden all the time.
That means constant back n forth hassle between manipulating shader, and manipulating controller instancing when extending their use.
It's not in way whatsover replacement for proper Mapping Source or Master Controller. It's not just Vray and F-Storm has it, Blender, Maya, Unreal Engine and countless others utilize the same approach.
Just because some existing workaround exists doesn't mean new and much superior feature shouldn't be implemented.