In your example, I’d control their machine with ARD, with them on the phone. Open Managed Software Center for them, find the application on the Software tab, then click Install. Show them how to do it.
We have manifests structured so that every Mac has an individual manifest. Every individual manifest gets a “core software” manifest that includes Flash Player, Java, etc. Labs also get the “labs” manifest. Additionally, every lab also has a manifest for the entire room. We can easily add an application to an entire lab by modifying that manifest. Since our labs don’t change often, it’s less work for me to create them by hand (we use Munki Enroll for faculty/staff machines, which change names much more often).
This discussion regarding the ‘all' catalog misses an important point: if you switch your Munki server to SSL and basic authentication, your users cannot access the catalogs without the correct username and password. This raises the requirements for accessing your repo outside of Munki - not only do they need to have a basic familiarity of how a Munki repository is set up, they need to figure out your username/password to gain access.
If they’re not admins, you can do a reasonable job of protecting the username and password:
Yes, everything can be reversed somehow - Target disk mode, or another boot disk, will allow your users to check “ignore permissions on this drive” for the primary boot disk, read the contents of that file, reverse the base64, login to your Munki repo, download the ‘all' catalog, then _potentially_ install software (assuming they correctly include any preinstall scripts, postinstall scripts, other packages required, etc.). If someone’s going to all of that trouble, though, they probably know they’re doing something they’re not supposed to. Notify IT Security and/or HR.
If you’re concerned about ExpensiveApplicationX being installed on people’s computers, use MunkiReport’s inventory feature to track which computers have it installed, regardless of how they got it. The AppVersions report is a good use for this, but you can build your own dashboard module, too.
I’m not the target audience for the requested feature (we don’t use Puppet, Chef, or Ansible) but I honestly don’t see how this solves a problem that couldn’t already be solved with nesting manifests inside machine-specific manifests (or possibly using conditionals).