Item Event Receivers are intended to be tied to a List Template, so that every list of type has its items act the same way. Since they are deployed via visual studios, they show up by web application, and can be deployed at the site collection level.
SharePoint Declarative Workflows can be attached to Content Types, which can be used at the web level. Or they can bet attached at an individual list.
That's deployment.
the event receiver fires for EVERY item in a list based off of which event you've overridden. e.g. OnItemAdded, OnItemAdding, OnItemChanged, OnItemChanging, OnItemDeleted, OnItemDeleting
Trying to be clear. I add my item to the list that has 1000 items already. The even receiver fires for that one item. It doesn't do anything to the other existing items.
If I open up a spreadsheet view of the list, and copy and paste a change to 50 items at once, and my event receiver overrides OnItemChanged, then it will fire for each of the 50 items changed.