Once Silverlight is installed on a system via the ConfigMgr client setup process, it cannot be removed directly -- you could run the uninstall command-line on a target client for sure (using an uninstall Application deployment) but the ccmeval process will
reinstall it. You may be able to run ccmsetup again with the above option included to prevent it from being reinstalled by ccmeval (don't know for sure as I haven't tried -- it should be easy enough to test though) but this won't actually remove Silverlight
so if this does prevent it from being reinstalled, you'd have to combine it with an App uninstall deployment.
Client push is not flexible and thus cannot be configured to do different things. Also, client push does not use a program for installation, the command-line used is defined by the client push process. Creating additional packages is meaningless and wouldn't
help as packages don't define command-lines, programs do but as mentioned, the client push process doesn't use programs.
If you want to completely prevent installing Silverlight during push, you can add the /ExcludeFeatures option the client push properties configuration in the console. As mentioned though, this will then apply to all of client push.
If you need to granularly prevent Silverlight from installing, you need to be able to deliver different command-lines to different sets of clients. For this, I would highly recommend using a startup script.