Using a homeassistant service as opposed to the ultimate domain’s service (e.g., homeassistant.turn_on instead of light.turn_on) just adds a layer of indirection (and, hence, extra processing.) How large the list of entity_id’s is doesn’t have anything to do with it. That list is only processed by the ultimate domain’s service (e.g., light.turn_on.) If the corresponding domain’s service has an issue, then calling it indirectly via a homeassistant service isn’t going to change that.
If you’re interested, you can see the homeassistant service code here.
Regarding how to “monitor” the efficiency, you can see all services that are called in the HA log by searching for call_service. E.g., here’s an example of turning on a light via homeassistant.toggle. You can see that it just turns around and calls light.toggle:
2018-08-28 09:51:36 INFO (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: service_data=entity_id=light.master_bedroom_nightstand_lamp, service=toggle, domain=homeassistant>
2018-08-28 09:51:36 INFO (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: service_data=entity_id=['light.master_bedroom_nightstand_lamp'], service=toggle, domain=light>
2018-08-28 09:51:36 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_executed[L]>
2018-08-28 09:51:36 INFO (MainThread) [homeassistant.core] Bus:Handling <Event service_executed[L]>
2018-08-28 09:51:39 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: old_state=<state light.master_bedroom_nightstand_lamp=off; node_id=9, friendly_name=Master Bedroom Nightstand Lamp, value_id=72057594193739777, supported_features=33, value_instance=1, value_index=0 @ 2018-08-28T08:50:23.878734-05:00>, new_state=<state light.master_bedroom_nightstand_lamp=on; node_id=9, friendly_name=Master Bedroom Nightstand Lamp, value_id=72057594193739777, brightness=255, value_instance=1, supported_features=33, value_index=0 @ 2018-08-28T09:51:39.908774-05:00>, entity_id=light.master_bedroom_nightstand_lamp>
There isn’t all that much overhead, so it probably doesn’t matter too much. My point was, why bother using the homeassistant service if you’re changing entities that you know are all in the same domain, or you’re just changing one entity.