A user can choose the features they want enabled in P4V's preferences.
Note that settings disabled by an administrator cannot be re-enabled here by the user. Configuring P4V Preferences
An administrator can control features using property settings; for example, to disable 'Streams' they can run this:
p4 property -a -n P4V.Features.Streams -v Off
and by including '-u userName' or '-g groupName' this can be applicable to either a user or a group.
For more on P4V settings, please review Setting P4V preferences for your users
and P4V 2013.1 Global Preferences
To control P4Swarm, the administrator would need to add the property 'P4.Swarm.URL' at least. For more on this, view this section
of the P4V documentation.
Some features can be added if using a centralized installation process - these are set in the 'p4vfeatures.xml' file in the P4VResources directory in P4V's installation directory. This is described here: Automated Deployment of Perforce
and Automated Deployment Properties
In addition to property settings, an administrator can create a 'central settings' file which is then used to define per-user and per-group logic relating to features, centrally-managed scripts and various other aspects of P4V's control. This is explained in more detail here: The Central Settings File
Finally, some features are determined by the existence of related entities, or the protections denying a user access to those entities. For example, if there is no 'unload' depot, then UnloadReload functionality is disabled. Similarly, if there is no Streams depot or a user's protections deny them access, then 'Streams' functionality will be disabled.
Protections are covered here: Authorizing Access