This is designed behavior, that effects all buttons, not just custom buttons, but out of box buttons as well (Note - flyouts and split buttons excluded since they have a menu with further child buttons and cannot be easily catagorized). This is an explicit design change from web client to Unified Client.
In most cases, it is helpful to hide buttons that do not act on selected items, so that item specific commands appear more prominently.
If there is a strong scenario where users will need to run a generic command, unrelated to the items selected, during item selection, then the following workaround can be used:
In the definition of their Custom Ribbon Command, add the following rule:
<EnableRule Id="Mscrm.AnySelection" />
This will cause the Unified Client to treat this command as both an item specific command, and a non-item specific command, and display in both cases.