After investigation and consideration by product management, it has been determined that this is not a defect or bug. The product was designed this way for a specific reason. Running this job simply provides the rollup (hence updating ‘totals’) of the latest costs based on the data that has been posted into the assignment for which these values are used across the project. If we restrict this to only a user with edit access, then a user with view access may be looking at stale data.
This allows the ‘view’ user the ability to feel confident that the cost data is up-to-date by simply clicking the option to run the job at any time. The cost totals are already in the project on the task assignment. This action allows the user to ensure that all costs are rolled up to the totals at the task and project levels. This action is a prerequisite for some reports to ensure accurate cost data is displayed - for example, the "Project Cost and Effort" report.
Possible workaround alternative:
If you are managing this by allowing the job to run by itself on a schedule, and that allows for enough accuracy of the data for the users who depend on it, then an alternative option is to completely remove the "Update Cost Totals" action for all users globally, so that it will no longer appear for anyone.