For me the main problem for letting Puppet manage the service restarts would be that I'm afraid the cluster would collapse. There might not be enough master nodes available at one time or shards would be unassigned if they do not have time to reallocate.
So once packages and/or configs are updated I can do a Rolling Upgrade and because I have setup Shard Allocation Awareness I can restart 1/4 of the nodes in my "production" cluster at a time (one awareness "zone" at a time).