Common newbie mistake, but no. For WeaponSets, PLAYER_UPGRADE means ANY upgrade. The WeaponSetUpgrade module ALWAYS triggers the PLAYER_UPGRADE WeaponSet condition, independent of whether the original upgrade was an OBJECT or PLAYER type upgrade. So the distinction between OBJECT and PLAYER is lost once the WeaponSetUpgrade module is triggered.
About trex' thingy: The tag does nothing. It's the module that does it.

The ProductionUpdate module allows an object to produce other objects and upgrades, by using the right part of the command bar to display what it is currently building. Anything that you want to build with a unit, that will appear in that part while it is building, will require a ProductionUpdate module to be able to be built. If you don't have it, the build or upgrade button will be greyed out, like what happens when you don't have the prerequisites for somthing.